Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Test2::Harness::Util::UsereContributed Perl DocuTest2::Harness::Util::Queue(3)

NAME
       Test2::Harness::Util::Queue - Representation of a queue.

DESCRIPTION
       This module represents a	queue, stored as a jsonl file.

SYNOPSIS
	   use Test2::Harness::Util::Queue;

	   my $queue = Test2::Harness::Util::Queue->new(file =>	'/path/to/queue.jsonl');

	   $queue->start(); # Create the queue

	   $queue->enqueue({foo	=> 'bar', baz => 'bat'});
	   $queue->enqueue({foo	=> 'bar2', baz => 'bat2'});
	   ...

	   $queue->end();

       Then in another processs:

	   use Test2::Harness::Util::Queue;

	   my $queue = Test2::Harness::Util::Queue->new(file =>	'/path/to/queue.jsonl');

	   my @items;
	   while (1) {
	       @items =	$queue->poll();
	       while (@items) {
		   my $item = shift @items or last;

		   ... process $item
	       }

	       # Queue ends with an 'undef' entry
	       last if @items && !defined($items[0]);
	   }

METHODS
       $path = $queue->file
	   The filename	used for the queue

   READING
       $queue->reset()
	   Restart reading the queue.

       @items =	$queue->poll()
	   Get more items from the queue. May need to call it multiple times,
	   specially if	another	process	is still writing to the	queue.

	   Returns an empty list if no items are available yet.

	   Returns 'undef' to terminate	the list.

       $bool = $queue->ended()
	   Check if the	queue has ended.

WRITING
       $queue->start()
	   Open	the queue file for writing.

       $queue->enqueue(\%HASHREF)
	   Add an item to the queue.

       $queue->end()
	   Terminate the queue.

SOURCE
       The source code repository for Test2-Harness can	be found at
       http://github.com/Test-More/Test2-Harness/.

MAINTAINERS
       Chad Granum <exodist@cpan.org>

AUTHORS
       Chad Granum <exodist@cpan.org>

COPYRIGHT
       Copyright 2020 Chad Granum <exodist7@gmail.com>.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       See http://dev.perl.org/licenses/

perl v5.32.1			  2020-11-18	Test2::Harness::Util::Queue(3)

NAME | DESCRIPTION | SYNOPSIS | METHODS | WRITING | SOURCE | MAINTAINERS | AUTHORS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Test2::Harness::Util::Queue&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help