The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojo::IOLoop::Stream - IOLoop Stream

SYNOPSIS

  use Mojo::IOLoop::Stream;

  # Create stream
  my $stream = Mojo::IOLoop::Stream->new($handle);
  $stream->on(read => sub {
    my ($self, $chunk) = @_;
    ...
  });
  $stream->on(close => sub {
    my $self = shift;
    ...
  });
  $stream->on(error => sub {
    my ($self, $error) = @_;
    ...
  });

  # Start and stop watching for new data
  $stream->resume;
  $stream->pause;

DESCRIPTION

Mojo::IOLoop::Stream is a container for streaming handles used by Mojo::IOLoop. Note that this module is EXPERIMENTAL and might change without warning!

EVENTS

Mojo::IOLoop::Stream can emit the following events.

close

Emitted if the stream gets closed.

drain

Emitted once all data has been written.

error

Emitted if an error happens on the stream.

read

Emitted if new data arrives on the stream.

ATTRIBUTES

Mojo::IOLoop::Stream implements the following attributes.

iowatcher

  my $watcher = $stream->iowatcher;
  $stream     = $stream->iowatcher(Mojo::IOWatcher->new);

Low level event watcher, usually a Mojo::IOWatcher or Mojo::IOWatcher::EV object.

METHODS

Mojo::IOLoop::Stream inherits all methods from Mojo::IOLoop::EventEmitter and implements the following new ones.

new

  my $stream = Mojo::IOLoop::Stream->new($handle);

Construct a new Mojo::IOLoop::Stream object.

handle

  my $handle = $stream->handle;

Get handle for stream.

is_finished

  my $finished = $stream->is_finished;

Check if stream is in a state where it is safe to close or steal the handle.

pause

  $stream->pause;

Stop watching for new data on the stream.

resume

  $stream->resume;

Start watching for new data on the stream.

steal_handle

  my $handle = $stream->steal_handle;

Steal handle from stream and prevent it from getting closed automatically.

write

  $stream->write('Hello!');

Write data to stream, the optional drain callback will be invoked once all data has been written.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.