
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 ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/