| Sys-Virt documentation | Contained in the Sys-Virt distribution. |
Sys::Virt::Stream - Represent & manage a libvirt stream
The Sys::Virt::Stream module represents a stream managed
by the virtual machine monitor.
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
Abort I/O on the stream. Either this function or finish must
be called on any stream which has been activated
Complete I/O on the stream. Either this function or abort must
be called on any stream which has been activated
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.
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.
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.
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
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
Change the event mask for a previously registered
callback to $events
Remove a previously registered callback
Create a stream which will not block when performing I/O
The stream has data available for read without blocking
The stream has ability to write data without blocking
An error occurred on the stream
The remote end of the stream closed
Daniel P. Berrange <berrange@redhat.com>
Copyright (C) 2006-2009 Red Hat Copyright (C) 2006-2007 Daniel P. Berrange
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.
Sys::Virt, Sys::Virt::Error, http://libvirt.org
| Sys-Virt documentation | Contained in the Sys-Virt distribution. |
# -*- perl -*- # # Copyright (C) 2011 Red Hat # # This program is free software; You can redistribute it and/or modify # it under either: # # a) the GNU General Public License as published by the Free # Software Foundation; either version 2, or (at your option) any # later version, # # or # # b) the "Artistic License" # # The file "LICENSE" distributed along with this file provides full # details of the terms and conditions of the two licenses.
package Sys::Virt::Stream; use strict; use warnings; sub _new { my $proto = shift; my $class = ref($proto) || $proto; my %params = @_; my $con = exists $params{connection} ? $params{connection} : die "connection parameter is requried"; my $self = Sys::Virt::Stream::_new_obj($con, $params{flags}); bless $self, $class; return $self; }
1;