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(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/