[libvirt] [PATCH 4/6] Introduce abstract virNetworkEvent class

Daniel P. Berrange berrange at redhat.com
Wed Dec 11 15:28:24 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

Inject a virNetworkEvent class between virObjectEvent
and virNetworkEventLifecycle to mirror virDomainEvent.

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 src/conf/network_event.c | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/src/conf/network_event.c b/src/conf/network_event.c
index b885ced..b1312b7 100644
--- a/src/conf/network_event.c
+++ b/src/conf/network_event.c
@@ -28,23 +28,40 @@
 #include "datatypes.h"
 #include "virlog.h"
 
-struct _virNetworkEventLifecycle {
+struct _virNetworkEvent {
     virObjectEvent parent;
 
+    /* Unused attribute to get virNetworkEvent class being created */
+    bool dummy;
+};
+typedef struct _virNetworkEvent virNetworkEvent;
+typedef virNetworkEvent *virNetworkEventPtr;
+
+struct _virNetworkEventLifecycle {
+    virNetworkEvent parent;
+
     int type;
     int detail;
 };
 typedef struct _virNetworkEventLifecycle virNetworkEventLifecycle;
 typedef virNetworkEventLifecycle *virNetworkEventLifecyclePtr;
 
+static virClassPtr virNetworkEventClass;
 static virClassPtr virNetworkEventLifecycleClass;
+static void virNetworkEventDispose(void *obj);
 static void virNetworkEventLifecycleDispose(void *obj);
 
 static int
 virNetworkEventsOnceInit(void)
 {
-    if (!(virNetworkEventLifecycleClass =
+    if (!(virNetworkEventClass =
           virClassNew(virClassForObjectEvent(),
+                      "virNetworkEvent",
+                      sizeof(virNetworkEvent),
+                      virNetworkEventDispose)))
+        return -1;
+    if (!(virNetworkEventLifecycleClass =
+          virClassNew(virNetworkEventClass,
                       "virNetworkEventLifecycle",
                       sizeof(virNetworkEventLifecycle),
                       virNetworkEventLifecycleDispose)))
@@ -55,6 +72,14 @@ virNetworkEventsOnceInit(void)
 VIR_ONCE_GLOBAL_INIT(virNetworkEvents)
 
 void
+virNetworkEventDispose(void *obj)
+{
+    virNetworkEventPtr event = obj;
+    VIR_DEBUG("obj=%p", event);
+}
+
+
+void
 virNetworkEventLifecycleDispose(void *obj)
 {
     virNetworkEventLifecyclePtr event = obj;
-- 
1.8.3.1




More information about the libvir-list mailing list