[libvirt] [PATCH 4/6] Introduce abstract virNetworkEvent class
Michal Privoznik
mprivozn at redhat.com
Thu Dec 12 18:48:19 UTC 2013
On 11.12.2013 16:28, Daniel P. Berrange wrote:
> 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;
>
This patch alone wouldn't make much sense. But in the light of the very
next patch it's more than desired.
ACK
Michal
More information about the libvir-list
mailing list