On Wed, Oct 29, 2008 at 07:45:26AM -0400, Ben Guthro wrote:
One issue that I seem to be running into for both dom, and conn objects is the creation
of a python object from the C vir{Connect,Domain}Ptr
The issue is that when creating a python object, and passing "_obj" into the
constructor - it will give a different python object each time, instead of searching for
an existing object, and bumping the ref count.
For example - each time the C callback would be called, we would create a new python
object with the came "._o", rather than getting a new reference to a common one
This is not an issue unless we want to store data in the python object independent from C
object (like the python callback list)
So...we could create a hash/dict object of virConnect objects...but when would you know
to delete the last reference?
Yes, the .o trick cmes from libxml2 python bindings where i used
the same thing. This can be a bit confusing, but as you noted we don't
really found a good workaround to the refcounting problem otherwise.
I guess it's fine to implement it that way, if not perfect, and if
some Python guru come with a solution, well we don't expect the user
code to use the ._o directly so we should be able to change the way
we do the mapping without disturbing the python applications.
The connection object could be stored though since the
virConnectDomainEventRegister()
function will need a connection, there in the python bindings we can
save a reference to that object and bring it when we get an event.
But for Domains, yes we will duplicate objects :-\
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/