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!
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.
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.