Introduce abstract virNetworkEvent class

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

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2013-12-11 14:09:01 +00:00
parent 6e2545c07b
commit 5c17a37142

View File

@ -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)))
@ -54,6 +71,14 @@ virNetworkEventsOnceInit(void)
VIR_ONCE_GLOBAL_INIT(virNetworkEvents)
void
virNetworkEventDispose(void *obj)
{
virNetworkEventPtr event = obj;
VIR_DEBUG("obj=%p", event);
}
void
virNetworkEventLifecycleDispose(void *obj)
{