NAME

TaskPipe::Iterator - generic class for TaskPipe Iterators

DESCRIPTION

If you are creating an iterator, you can either get a new instance of a generic iterator and then supply the subs:

    my $iterator = TaskPipe::Iterator->new(

        next => sub{ 
                     #...
                },

        count => sub {
                     #...
                },

        reset => sub {
                    # ...
                }

     );

or you can inherit from TaskPipe::Iterator and override the subs. All 3 subs must be provided - however

SUBS

next

This sub should iterate the record pointer and return the next record

reset

This sub should reset the record pointer to the first record.

count

Optional. If you know how many records you are expecting, then this sub should return this value. Including count offers a small performance boost by using the parent thread to execute the last record instead of idling. If the total number of records is not known in advance (often the case with iterators) then this sub should return -1. A sub that returns -1 is the default - so you can just omit this attribute if you don't have a way to calculate the total number of results.

AUTHOR

Tom Gracey <tomgracey@gmail.com>

COPYRIGHT AND LICENSE

Copyright (c) Tom Gracey 2018

TaskPipe is free software, licensed under

    The GNU Public License Version 3