[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