Vyacheslav Matyukhin > Flux-1.03 > Flux::Out

Download:
Flux-1.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.03   Source  

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 until commit() is called.

Return value semantics is not specified.

write_chunk($chunk)

write_chunk receives an arrayref with items ordered as they would be if write 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.

syntax highlighting: