NAME¶
Sys::Virt::Stream - Represent & manage a libvirt stream
DESCRIPTION¶
The "Sys::Virt::Stream" module represents a stream managed by the
virtual machine monitor.
METHODS¶
- my $st Sys::Virt::Stream->new($conn, $flags);
- Creates a new data stream, ready for use with a stream
based API. The optional $flags parameter can be used to configure the
stream as non-blocking
- $st->abort()
- Abort I/O on the stream. Either this function or
"finish" must be called on any stream which has been
activated
- $st->finish()
- Complete I/O on the stream. Either this function or
"abort" must be called on any stream which has been
activated
- $rv = $st->recv($data, $nbytes)
- Receive upto $nbytes worth of data, copying into $data.
Returns the number of bytes read, or -2 if I/O would block, or -1 on
error.
- $rv = $st->send($data, $nbytes)
- Send upto $nbytes worth of data, copying from $data.
Returns the number of bytes sent, or -2 if I/O would block, or -1 on
error.
- $st->recv_all($handler)
- Receive all data available from the stream, invoking
$handler to process the data. The $handler parameter must be a function
which expects three arguments, the $st stream object, a scalar containing
the data received and a data byte count. The function should return the
number of bytes processed, or -1 upon error.
- $st->send_all($handler)
- Send all data produced by $handler to the stream. The
$handler parameter must be a function which expects three arguments, the
$st stream object, a scalar which must be filled with data and a maximum
data byte count desired. The function should return the number of bytes
filled, 0 on end of file, or -1 upon error
- $st->add_callback($events, $coderef)
- Register a callback to be invoked whenever the stream has
one or more events from $events mask set. The $coderef must be a
subroutine that expects 2 parameters, the original $st object and the new
$events mask
- $st->update_callback($events)
- Change the event mask for a previously registered callback
to $events
- $st->remove_callback();
- Remove a previously registered callback
CONSTANTS¶
- Sys::Virt::Stream::NONBLOCK
- Create a stream which will not block when performing
I/O
- Sys::Virt::Stream::EVENT_READABLE
- The stream has data available for read without
blocking
- Sys::Virt::Stream::EVENT_WRITABLE
- The stream has ability to write data without blocking
- Sys::Virt::Stream::EVENT_ERROR
- An error occurred on the stream
- Sys::Virt::Stream::EVENT_HANGUP
- The remote end of the stream closed
AUTHORS¶
Daniel P. Berrange <berrange@redhat.com>
COPYRIGHT¶
Copyright (C) 2006-2009 Red Hat Copyright (C) 2006-2007 Daniel P. Berrange
LICENSE¶
This program is free software; you can redistribute it and/or modify it under
the terms of either the GNU General Public License as published by the Free
Software Foundation (either version 2 of the License, or at your option any
later version), or, the Artistic License, as specified in the Perl README
file.
SEE ALSO¶
Sys::Virt, Sys::Virt::Error, "
http://libvirt.org"