
On Mon, Dec 02, 2013 at 05:39:44PM +0100, Cédric Bosdonnat wrote:
Put all network-events related code in src/conf/network_event.[ch] --- include/libvirt/libvirt.h.in | 77 ++++++++++++++++++++++ src/Makefile.am | 5 ++ src/conf/network_event.c | 152 +++++++++++++++++++++++++++++++++++++++++++ src/conf/network_event.h | 50 ++++++++++++++ src/conf/object_event.c | 6 ++ src/conf/object_event.h | 1 + src/driver.h | 14 ++++ src/libvirt.c | 125 +++++++++++++++++++++++++++++++++++ src/libvirt_private.syms | 2 + src/libvirt_public.syms | 7 ++ 10 files changed, 439 insertions(+) create mode 100644 src/conf/network_event.c create mode 100644 src/conf/network_event.h
diff --git a/src/conf/network_event.c b/src/conf/network_event.c new file mode 100644 index 0000000..fb17837 --- /dev/null +++ b/src/conf/network_event.c
+/** + * virNetworkEventStateRegisterID: + * @conn: connection to associate with callback + * @state: object event state + * @net: network to filter on or NULL for all networks + * @eventID: ID of the event type to register for + * @cb: function to add to event + * @opaque: data blob to pass to callback + * @freecb: callback to free @opaque + * @callbackID: filled with callback ID + * + * Register the function @callbackID with connection @conn, + * from @state, for events of type @eventID. + * + * Returns: the number of callbacks now registered, or -1 on error + */ +int +virNetworkEventStateRegisterID(virConnectPtr conn, + virObjectEventStatePtr state, + virNetworkPtr net, + int eventID, + virConnectObjectEventGenericCallback cb, + void *opaque, + virFreeCallback freecb, + int *callbackID) +{ + if (net) + return virObjectEventStateRegisterID(conn, state, + net->uuid, net->name, 0, eventID, + cb, opaque, freecb, callbackID); + else + return virObjectEventStateRegisterID(conn, state, + NULL, NULL, 0, eventID, + cb, opaque, freecb, callbackID); +}
Why not just have this method add in VIR_EVENT_NAMESPACE_NETWORK to eventID, then no other code in libvirt would ever need to know anything about the namespace values. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|