[libvirt] [PATCH 04/10] python: Implement virStreamSend/Recv
Daniel Veillard
veillard at redhat.com
Thu Jun 16 14:44:26 UTC 2011
On Wed, Jun 15, 2011 at 09:23:13PM -0400, Cole Robinson wrote:
> The return values for the python version are different that the C version
> of virStreamSend: on success we return a string, an error raises an exception,
> and if the stream would block we return int(-2). We need to do this
> since strings aren't passed by reference in python.
I find this a bit bizarre, either we return a string or we return an
integer, but if we don't have any other way to provide the information
Since we provide the wrapper what about returning
(code#, "string value")
allowing to have only one type on return instead (i.e. just change
recv() in the override below)
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
> python/generator.py | 9 +++--
> python/libvirt-override-virStream.py | 35 +++++++++++++++++++
> python/libvirt-override.c | 62 ++++++++++++++++++++++++++++++++++
> python/typewrappers.c | 14 ++++++++
> python/typewrappers.h | 1 +
> 5 files changed, 117 insertions(+), 4 deletions(-)
> +
> + def recv(self, nbytes):
> + """Write a series of bytes to the stream. This method may
> + block the calling application for an arbitrary amount
> + of time.
> +
> + Errors are not guaranteed to be reported synchronously
> + with the call, but may instead be delayed until a
> + subsequent call.
> +
> + On success, the received data is returned. On failure, an
> + exception is raised. If the stream is a NONBLOCK stream and
> + the request would block, integer -2 is returned.
> + """
> + ret = libvirtmod.virStreamRecv(self._o, nbytes)
> + if ret == None: raise libvirtError ('virStreamRecv() failed')
> + return ret
otherwise looks fine to me,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list