[libvirt] [PATCH 09/34] Create virDomainEventLifecycle to start removing the huge union
Daniel P. Berrange
berrange at redhat.com
Fri Nov 29 17:09:55 UTC 2013
On Fri, Nov 29, 2013 at 04:18:45PM +0100, Cédric Bosdonnat wrote:
> ---
> src/conf/domain_event.c | 65 ++++++++++++++++++++++++++++++++++---------------
> src/conf/domain_event.h | 8 +++---
> 2 files changed, 50 insertions(+), 23 deletions(-)
>
> diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
> index ff4f69a..a69ce11 100644
> --- a/src/conf/domain_event.c
> +++ b/src/conf/domain_event.c
> @@ -76,10 +76,14 @@ struct _virObjectEventCallback {
> int deleted;
> };
>
> +
> +
Nit-pick: add these 2 lines in the previous patch when you rebase next
> static virClassPtr virObjectEventClass;
> static virClassPtr virDomainEventClass;
> +static virClassPtr virDomainEventLifecycleClass;
> static void virObjectEventDispose(void *obj);
> static void virDomainEventDispose(void *obj);
> +static void virDomainEventLifecycleDispose(void *obj);
>
> struct _virObjectEvent {
> virObject parent;
> @@ -764,37 +786,37 @@ static void *virDomainEventNewInternal(virClassPtr klass,
> return event;
> }
>
> -virDomainEventPtr virDomainEventNew(int id, const char *name,
> +void *virDomainEventNew(int id, const char *name,
> const unsigned char *uuid,
> int type, int detail)
> {
> - virDomainEventPtr event;
> + virDomainEventLifecyclePtr event;
>
> if (virObjectEventInitialize() < 0)
> return NULL;
>
> - if (!(event = virDomainEventNewInternal(virDomainEventClass,
> - VIR_DOMAIN_EVENT_ID_LIFECYCLE,
> - id, name, uuid)))
> + if (!(event = virDomainEventNewInternal(virDomainEventLifecycleClass,
> + VIR_DOMAIN_EVENT_ID_LIFECYCLE,
> + id, name, uuid)))
> return NULL;
>
> - event->data.lifecycle.type = type;
> - event->data.lifecycle.detail = detail;
> + event->type = type;
> + event->detail = detail;
>
> return event;
> }
>
> -virDomainEventPtr virDomainEventNewFromDom(virDomainPtr dom, int type, int detail)
> +void *virDomainEventNewFromDom(virDomainPtr dom, int type, int detail)
> {
> return virDomainEventNew(dom->id, dom->name, dom->uuid, type, detail);
> }
>
> -virDomainEventPtr virDomainEventNewFromObj(virDomainObjPtr obj, int type, int detail)
> +void *virDomainEventNewFromObj(virDomainObjPtr obj, int type, int detail)
> {
> return virDomainEventNewFromDef(obj->def, type, detail);
> }
>
> -virDomainEventPtr virDomainEventNewFromDef(virDomainDefPtr def, int type, int detail)
> +void *virDomainEventNewFromDef(virDomainDefPtr def, int type, int detail)
I think I'd prefer these to return 'virObjectEventPtr' rather than void *,
since that's the shared base class of all these event types
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 :|
More information about the libvir-list
mailing list