This file is indexed.

/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__