[libvirt] [v3 06/32] Renamed virDomainEventCallbackList* to virObjectEventCallbackList*

Cédric Bosdonnat cbosdonnat at suse.com
Mon Dec 2 16:39:24 UTC 2013


Keep the legacy Domain lifecycle event functions as is.
---
 src/conf/domain_event.c | 94 ++++++++++++++++++++++++++++---------------------
 src/conf/domain_event.h |  3 --
 2 files changed, 53 insertions(+), 44 deletions(-)

diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index 5389aef..8442db5 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -43,11 +43,13 @@ typedef virObjectMeta *virObjectMetaPtr;
 typedef struct _virObjectEventQueue virObjectEventQueue;
 typedef virObjectEventQueue *virObjectEventQueuePtr;
 
-struct _virDomainEventCallbackList {
+struct _virObjectEventCallbackList {
     unsigned int nextID;
     unsigned int count;
     virObjectEventCallbackPtr *callbacks;
 };
+typedef struct _virObjectEventCallbackList virObjectEventCallbackList;
+typedef virObjectEventCallbackList *virObjectEventCallbackListPtr;
 
 struct _virObjectEventQueue {
     unsigned int count;
@@ -56,7 +58,7 @@ struct _virObjectEventQueue {
 
 struct _virObjectEventState {
     /* The list of domain event callbacks */
-    virDomainEventCallbackListPtr callbacks;
+    virObjectEventCallbackListPtr callbacks;
     /* The queue of object events */
     virObjectEventQueuePtr queue;
     /* Timer for flushing events queue */
@@ -132,13 +134,13 @@ struct _virDomainEvent {
 };
 
 /**
- * virDomainEventCallbackListFree:
+ * virObjectEventCallbackListFree:
  * @list: event callback list head
  *
  * Free the memory in the domain event callback list
  */
 static void
-virDomainEventCallbackListFree(virDomainEventCallbackListPtr list)
+virObjectEventCallbackListFree(virObjectEventCallbackListPtr list)
 {
     size_t i;
     if (!list)
@@ -161,11 +163,11 @@ virDomainEventCallbackListFree(virDomainEventCallbackListPtr list)
  * @cbList: the list
  * @callback: the callback to remove
  *
- * Internal function to remove a callback from a virDomainEventCallbackListPtr
+ * Internal function to remove a callback from a virObjectEventCallbackListPtr
  */
 static int
 virDomainEventCallbackListRemove(virConnectPtr conn,
-                                 virDomainEventCallbackListPtr cbList,
+                                 virObjectEventCallbackListPtr cbList,
                                  virConnectDomainEventCallback callback)
 {
     int ret = 0;
@@ -207,16 +209,16 @@ virDomainEventCallbackListRemove(virConnectPtr conn,
 
 
 /**
- * virDomainEventCallbackListRemoveID:
+ * virObjectEventCallbackListRemoveID:
  * @conn: pointer to the connection
  * @cbList: the list
  * @callback: the callback to remove
  *
- * Internal function to remove a callback from a virDomainEventCallbackListPtr
+ * Internal function to remove a callback from a virObjectEventCallbackListPtr
  */
 static int
-virDomainEventCallbackListRemoveID(virConnectPtr conn,
-                                   virDomainEventCallbackListPtr cbList,
+virObjectEventCallbackListRemoveID(virConnectPtr conn,
+                                   virObjectEventCallbackListPtr cbList,
                                    int callbackID)
 {
     int ret = 0;
@@ -258,7 +260,7 @@ virDomainEventCallbackListRemoveID(virConnectPtr conn,
 
 static int
 virDomainEventCallbackListMarkDelete(virConnectPtr conn,
-                                     virDomainEventCallbackListPtr cbList,
+                                     virObjectEventCallbackListPtr cbList,
                                      virConnectDomainEventCallback callback)
 {
     int ret = 0;
@@ -283,8 +285,8 @@ virDomainEventCallbackListMarkDelete(virConnectPtr conn,
 
 
 static int
-virDomainEventCallbackListMarkDeleteID(virConnectPtr conn,
-                                       virDomainEventCallbackListPtr cbList,
+virObjectEventCallbackListMarkDeleteID(virConnectPtr conn,
+                                       virObjectEventCallbackListPtr cbList,
                                        int callbackID)
 {
     int ret = 0;
@@ -308,7 +310,7 @@ virDomainEventCallbackListMarkDeleteID(virConnectPtr conn,
 
 
 static int
-virDomainEventCallbackListPurgeMarked(virDomainEventCallbackListPtr cbList)
+virObjectEventCallbackListPurgeMarked(virObjectEventCallbackListPtr cbList)
 {
     int old_count = cbList->count;
     int n;
@@ -338,20 +340,25 @@ virDomainEventCallbackListPurgeMarked(virDomainEventCallbackListPtr cbList)
 
 
 /**
- * virDomainEventCallbackListAddID:
+ * virObjectEventCallbackListAddID:
  * @conn: pointer to the connection
  * @cbList: the list
+ * @uuid: the uuid of the object to filter on
+ * @name: the name of the object to filter on
+ * @id: the ID of the object to filter on
  * @eventID: the event ID
  * @callback: the callback to add
  * @opaque: opaque data tio pass to callback
  * @callbackID: filled with callback ID
  *
- * Internal function to add a callback from a virDomainEventCallbackListPtr
+ * Internal function to add a callback from a virObjectEventCallbackListPtr
  */
 static int
-virDomainEventCallbackListAddID(virConnectPtr conn,
-                                virDomainEventCallbackListPtr cbList,
-                                virDomainPtr dom,
+virObjectEventCallbackListAddID(virConnectPtr conn,
+                                virObjectEventCallbackListPtr cbList,
+                                unsigned char uuid[VIR_UUID_BUFLEN],
+                                const char *name,
+                                int id,
                                 int eventID,
                                 virConnectDomainEventGenericCallback callback,
                                 void *opaque,
@@ -372,10 +379,10 @@ virDomainEventCallbackListAddID(virConnectPtr conn,
         if (cbList->callbacks[i]->cb == VIR_DOMAIN_EVENT_CALLBACK(callback) &&
             cbList->callbacks[i]->eventID == eventID &&
             cbList->callbacks[i]->conn == conn &&
-            ((dom && cbList->callbacks[i]->meta &&
+            ((uuid && cbList->callbacks[i]->meta &&
               memcmp(cbList->callbacks[i]->meta->uuid,
-                     dom->uuid, VIR_UUID_BUFLEN) == 0) ||
-             (!dom && !cbList->callbacks[i]->meta))) {
+                     uuid, VIR_UUID_BUFLEN) == 0) ||
+             (!uuid && !cbList->callbacks[i]->meta))) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                            _("event callback already tracked"));
             return -1;
@@ -390,13 +397,13 @@ virDomainEventCallbackListAddID(virConnectPtr conn,
     event->opaque = opaque;
     event->freecb = freecb;
 
-    if (dom) {
+    if (name && uuid && id > 0) {
         if (VIR_ALLOC(event->meta) < 0)
             goto error;
-        if (VIR_STRDUP(event->meta->name, dom->name) < 0)
+        if (VIR_STRDUP(event->meta->name, name) < 0)
             goto error;
-        memcpy(event->meta->uuid, dom->uuid, VIR_UUID_BUFLEN);
-        event->meta->id = dom->id;
+        memcpy(event->meta->uuid, uuid, VIR_UUID_BUFLEN);
+        event->meta->id = id;
     }
 
     /* Make space on list */
@@ -440,16 +447,16 @@ error:
  * @callback: the callback to add
  * @opaque: opaque data tio pass to callback
  *
- * Internal function to add a callback from a virDomainEventCallbackListPtr
+ * Internal function to add a callback from a virObjectEventCallbackListPtr
  */
 static int
 virDomainEventCallbackListAdd(virConnectPtr conn,
-                              virDomainEventCallbackListPtr cbList,
+                              virObjectEventCallbackListPtr cbList,
                               virConnectDomainEventCallback callback,
                               void *opaque,
                               virFreeCallback freecb)
 {
-    return virDomainEventCallbackListAddID(conn, cbList, NULL,
+    return virObjectEventCallbackListAddID(conn, cbList, NULL, NULL, 0,
                                            VIR_DOMAIN_EVENT_ID_LIFECYCLE,
                                            VIR_DOMAIN_EVENT_CALLBACK(callback),
                                            opaque, freecb, NULL);
@@ -458,8 +465,8 @@ virDomainEventCallbackListAdd(virConnectPtr conn,
 
 
 static int
-virDomainEventCallbackListEventID(virConnectPtr conn,
-                                  virDomainEventCallbackListPtr cbList,
+virObjectEventCallbackListEventID(virConnectPtr conn,
+                                  virObjectEventCallbackListPtr cbList,
                                   int callbackID)
 {
     size_t i;
@@ -602,7 +609,7 @@ virObjectEventStateFree(virObjectEventStatePtr state)
     if (!state)
         return;
 
-    virDomainEventCallbackListFree(state->callbacks);
+    virObjectEventCallbackListFree(state->callbacks);
     virObjectEventQueueFree(state->queue);
 
     if (state->timer != -1)
@@ -1397,7 +1404,7 @@ static int virDomainEventDispatchMatchCallback(virDomainEventPtr event,
 
 static void
 virDomainEventDispatch(virDomainEventPtr event,
-                       virDomainEventCallbackListPtr callbacks,
+                       virObjectEventCallbackListPtr callbacks,
                        virDomainEventDispatchFunc dispatch,
                        void *opaque)
 {
@@ -1422,7 +1429,7 @@ virDomainEventDispatch(virDomainEventPtr event,
 
 static void
 virObjectEventQueueDispatch(virObjectEventQueuePtr queue,
-                            virDomainEventCallbackListPtr callbacks,
+                            virObjectEventCallbackListPtr callbacks,
                             virDomainEventDispatchFunc dispatch,
                             void *opaque)
 {
@@ -1496,7 +1503,7 @@ virObjectEventStateFlush(virObjectEventStatePtr state)
                                 state);
 
     /* Purge any deleted callbacks */
-    virDomainEventCallbackListPurgeMarked(state->callbacks);
+    virObjectEventCallbackListPurgeMarked(state->callbacks);
 
     state->isDispatching = false;
     virObjectEventStateUnlock(state);
@@ -1594,9 +1601,14 @@ virDomainEventStateRegisterID(virConnectPtr conn,
         goto cleanup;
     }
 
-    ret = virDomainEventCallbackListAddID(conn, state->callbacks,
-                                          dom, eventID, cb, opaque, freecb,
-                                          callbackID);
+    if (dom == NULL)
+        ret = virObjectEventCallbackListAddID(conn, state->callbacks, NULL,
+                                              NULL, 0, eventID, cb,
+                                              opaque, freecb, callbackID);
+    else
+        ret = virObjectEventCallbackListAddID(conn, state->callbacks, dom->uuid,
+                                              dom->name, dom->id, eventID, cb,
+                                              opaque, freecb, callbackID);
 
     if (ret == -1 &&
         state->callbacks->count == 0 &&
@@ -1668,10 +1680,10 @@ virObjectEventStateDeregisterID(virConnectPtr conn,
 
     virObjectEventStateLock(state);
     if (state->isDispatching)
-        ret = virDomainEventCallbackListMarkDeleteID(conn,
+        ret = virObjectEventCallbackListMarkDeleteID(conn,
                                                      state->callbacks, callbackID);
     else
-        ret = virDomainEventCallbackListRemoveID(conn,
+        ret = virObjectEventCallbackListRemoveID(conn,
                                                  state->callbacks, callbackID);
 
     if (state->callbacks->count == 0 &&
@@ -1705,7 +1717,7 @@ virObjectEventStateEventID(virConnectPtr conn,
     int ret;
 
     virObjectEventStateLock(state);
-    ret = virDomainEventCallbackListEventID(conn,
+    ret = virObjectEventCallbackListEventID(conn,
                                             state->callbacks, callbackID);
     virObjectEventStateUnlock(state);
     return ret;
diff --git a/src/conf/domain_event.h b/src/conf/domain_event.h
index fa0d409..fddc94b 100644
--- a/src/conf/domain_event.h
+++ b/src/conf/domain_event.h
@@ -31,9 +31,6 @@
 typedef struct _virObjectEventCallback virObjectEventCallback;
 typedef virObjectEventCallback *virObjectEventCallbackPtr;
 
-typedef struct _virDomainEventCallbackList virDomainEventCallbackList;
-typedef virDomainEventCallbackList *virDomainEventCallbackListPtr;
-
 /**
  * Dispatching domain events that come in while
  * in a call / response rpc
-- 
1.8.4.4




More information about the libvir-list mailing list