/usr/share/perl5/Data/Stream/Bulk/DoneFlag.pm is in libdata-stream-bulk-perl 0.11-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | package Data::Stream::Bulk::DoneFlag;
BEGIN {
$Data::Stream::Bulk::DoneFlag::AUTHORITY = 'cpan:NUFFIN';
}
{
$Data::Stream::Bulk::DoneFlag::VERSION = '0.11';
}
use Moose::Role;
# ABSTRACT: Implement the C<is_done> method in terms of a flag
use namespace::clean -except => 'meta';
with qw(Data::Stream::Bulk);
requires "get_more";
sub is_done {}
has done => (
isa => "Bool",
init_arg => undef,
reader => "is_done",
writer => "_done",
);
sub finished {}
sub _set_done {
my $self = shift;
$self->_done(1);
$self->finished;
}
sub next {
my $self = shift;
unless ( $self->is_done ) {
if ( my $more = $self->get_more ) {
return $more;
} else {
$self->_set_done;
return;
}
} else {
return;
}
}
__PACKAGE__;
=pod
=head1 NAME
Data::Stream::Bulk::DoneFlag - Implement the C<is_done> method in terms of a flag
=head1 VERSION
version 0.11
=head1 SYNOPSIS
package Data::Stream::Bulk::Blah;
use Moose;
with qw(Data::Stream::Bulk::DoneFlag);
sub get_more {
if ( my @more = more() ) {
return \@more;
} else {
return;
}
}
=head1 DESCRIPTION
This role implements the C<Data::Stream::Bulk> core API in terms of one method
(C<get_more>).
As a convenience it calls C<finished> when the stream is exhausted, so that
cleanup may be done.
This is used by classes like L<Data::Stream::Bulk::DBI>,
L<Data::Stream::Bulk::Callback>.
=head1 METHODS
=over 4
=item is_done
Returns the state of the iterator.
=item next
As long as the iterator is not yet done, calls C<get_more>.
If C<get_more> returned a false value instead of an array reference then
C<done> is set, C<finished> is called, and this C<next> does nothing on
subsequent calls.
=item finished
A noop by default. Can be overridden if so desired.
=back
=head1 REQUIRED_METHODS
=over 4
=item get_more
Returns the next block of data as an array ref, or a false value if no items
are left.
=back
=head1 AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Yuval Kogman.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
__END__
|