void *opaque)
{
virObjectEventStatePtr state = opaque;
+ virEventNamespaceID namespace = (event->eventID & 0xFF00) >> 8;
/* Drop the lock whle dispatching, for sake of re-entrancy */
virObjectEventStateUnlock(state);
- virDomainEventDispatchDefaultFunc(conn, event,
- VIR_DOMAIN_EVENT_CALLBACK(cb), cbopaque, NULL);
+ switch (namespace)
+ {
+ case VIR_EVENT_NAMESPACE_DOMAIN:
+ virDomainEventDispatchDefaultFunc(conn, event,
+ VIR_DOMAIN_EVENT_CALLBACK(cb), cbopaque, NULL);
+ break;
+ }
virObjectEventStateLock(state);
}
# include "domain_conf.h"
+
+/** Event IDs are computed in the following way:
+ virEventNamespaceID << 8 + vir*EventId
+ */
+typedef enum {
+ VIR_EVENT_NAMESPACE_DOMAIN = 0, /* 0 to keep value of virDomainEventId unchanged */
+} virEventNamespaceID;
+
typedef struct _virObjectEventCallback virObjectEventCallback;
typedef virObjectEventCallback *virObjectEventCallbackPtr;