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.