NAME
Flux::Out - output stream interface
VERSION
version 1.03
SYNOPSIS
$out->write($item);
$out->write_chunk(\@items);
$out->commit;
DESCRIPTION
Flux::Out
is the role which every writing stream must implement.
Consumers must implement write
, write_chunk
and commit
methods.
CONSUMER SYNOPSIS
use Moo;
with "Flux::Out";
sub write {
my ($self, $item) = @_;
say "Item: $item";
}
sub write_chunk {
my ($self, $chunk) = @_;
say "Item: $_" for @$chunk;
}
sub commit {
STDOUT->flush;
}
INTERFACE
- write($item)
-
It receives one scalar
$item
as its argument.At the implementor's choice, it can process
$item
immediately or keep it untilcommit()
is called.Return value semantics is not specified.
- write_chunk($chunk)
-
write_chunk
receives an arrayref with items ordered as they would be ifwrite
method was used instead.Return value semantics is not specified.
- commit()
-
commit
method can flush cached data, print statistics or do anything neccessary to make sure that writing is completed correctly.Output stream implementation should make sure that stream is still usable after that.
SEE ALSO
Flux::Storage - role for persistent storages which are also output streams.
Flux::In::Role::Easy - specialization of this role for those who don't want to bother with 3 methods, and want to just implement write()
.
AUTHOR
Vyacheslav Matyukhin <me@berekuk.ru>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Yandex LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.