[libvirt] [PATCH 04/13] Add new internal domain events APIs for handling other event types
Daniel P. Berrange
berrange at redhat.com
Thu Mar 25 16:27:37 UTC 2010
On Mon, Mar 22, 2010 at 03:42:52PM +0100, Daniel Veillard wrote:
> On Fri, Mar 19, 2010 at 03:38:52PM +0000, Daniel P. Berrange wrote:
> > The current internal domain events API tracks callbacks based on
> > the function pointer, and only supports lifecycle events. This
> > adds new internal APIs for registering callbacks for other event
> > types. These new APIs are postfixed with the word 'ID' to indicate
> > that they operated based on event ID, instead of hardcoded to
> > lifecycle events
> >
> > * src/conf/domain_event.c, src/conf/domain_event.h,
> > src/libvirt_private.syms: Add new APIs for handling callbacks
> > for non-lifecycle events
> > ---
> > src/conf/domain_event.c | 169 ++++++++++++++++++++++++++++++++++++++++++---
> > src/conf/domain_event.h | 28 +++++++-
> > src/libvirt_private.syms | 6 ++
> > 3 files changed, 190 insertions(+), 13 deletions(-)
> >
> > diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
> [...]
> > +no_memory:
> > + virReportOOMError();
> > +
> > + if (event) {
> > + if (event->dom)
> > + VIR_FREE(event->dom->name);
> > + VIR_FREE(event->dom);
> > + }
> > + VIR_FREE(event);
>
> Probably worth having an event freeing routine of its own
>
> [...]
> > diff --git a/src/conf/domain_event.h b/src/conf/domain_event.h
> > index 8658631..5578cd9 100644
> > --- a/src/conf/domain_event.h
> > +++ b/src/conf/domain_event.h
> > @@ -46,24 +46,50 @@ int virDomainEventCallbackListAdd(virConnectPtr conn,
> > void *opaque,
> > virFreeCallback freecb)
> > ATTRIBUTE_NONNULL(1);
> > +int virDomainEventCallbackListAddID(virConnectPtr conn,
> > + virDomainEventCallbackListPtr cbList,
> > + virDomainPtr dom,
> > + int eventID,
> > + virConnectDomainEventGenericCallback cb,
> > + void *opaque,
> > + virFreeCallback freecb)
> > + ATTRIBUTE_NONNULL(1);
>
> Hum, parameters 0 (conn), 4 (cb) could also be passed in NONNULL list
> I think
Parameter indexes start from '1', so this is checking 'conn' already.
I could add the callback arg too.
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list