#define VIR_FROM_THIS VIR_FROM_NONE
+struct _virObjectEventCallbackList {
+ unsigned int nextID;
+ size_t count;
+ virObjectEventCallbackPtr *callbacks;
+};
+
struct _virObjectEventQueue {
size_t count;
virObjectEventPtr *events;
};
+typedef struct _virObjectEventQueue virObjectEventQueue;
+typedef virObjectEventQueue *virObjectEventQueuePtr;
+
+struct _virObjectEventState {
+ /* The list of domain event callbacks */
+ virObjectEventCallbackListPtr callbacks;
+ /* The queue of object events */
+ virObjectEventQueuePtr queue;
+ /* Timer for flushing events queue */
+ int timer;
+ /* Flag if we're in process of dispatching */
+ bool isDispatching;
+ virMutex lock;
+};
+
+struct _virObjectEventCallback {
+ int callbackID;
+ virClassPtr klass;
+ int eventID;
+ virConnectPtr conn;
+ virObjectMetaPtr meta;
+ virConnectObjectEventGenericCallback cb;
+ void *opaque;
+ virFreeCallback freecb;
+ bool deleted;
+};
static virClassPtr virObjectEventClass;
*
* Internal function to add a callback from a virObjectEventCallbackListPtr
*/
-int
+static int
virObjectEventCallbackListAddID(virConnectPtr conn,
virObjectEventCallbackListPtr cbList,
unsigned char uuid[VIR_UUID_BUFLEN],
*
* Removes all elements from the queue
*/
-void
+static void
virObjectEventQueueClear(virObjectEventQueuePtr queue)
{
size_t i;
*
* Lock event state before calling functions from object_event_private.h.
*/
-void
+static void
virObjectEventStateLock(virObjectEventStatePtr state)
{
virMutexLock(&state->lock);
*
* Unlock event state after calling functions from object_event_private.h.
*/
-void
+static void
virObjectEventStateUnlock(virObjectEventStatePtr state)
{
virMutexUnlock(&state->lock);
* the callback of a periodic timer on the event loop, in order to
* flush the callback queue.
*/
-void
+static void
virObjectEventTimer(int timer ATTRIBUTE_UNUSED, void *opaque)
{
virObjectEventStatePtr state = opaque;
typedef struct _virObjectMeta virObjectMeta;
typedef virObjectMeta *virObjectMetaPtr;
-struct _virObjectEventCallbackList {
- unsigned int nextID;
- size_t count;
- virObjectEventCallbackPtr *callbacks;
-};
typedef struct _virObjectEventCallbackList virObjectEventCallbackList;
typedef virObjectEventCallbackList *virObjectEventCallbackListPtr;
-typedef struct _virObjectEventQueue virObjectEventQueue;
-typedef virObjectEventQueue *virObjectEventQueuePtr;
-
-struct _virObjectEventState {
- /* The list of domain event callbacks */
- virObjectEventCallbackListPtr callbacks;
- /* The queue of object events */
- virObjectEventQueuePtr queue;
- /* Timer for flushing events queue */
- int timer;
- /* Flag if we're in process of dispatching */
- bool isDispatching;
- virMutex lock;
-};
-
-struct _virObjectEventCallback {
- int callbackID;
- virClassPtr klass;
- int eventID;
- virConnectPtr conn;
- virObjectMetaPtr meta;
- virConnectObjectEventGenericCallback cb;
- void *opaque;
- virFreeCallback freecb;
- bool deleted;
-};
-
typedef void
(*virObjectEventDispatchFunc)(virConnectPtr conn,
virObjectEventPtr event,
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
ATTRIBUTE_NONNULL(5);
-int
-virObjectEventCallbackListAddID(virConnectPtr conn,
- virObjectEventCallbackListPtr cbList,
- unsigned char *uuid,
- const char *name,
- int id,
- virClassPtr klass,
- int eventID,
- virConnectObjectEventGenericCallback callback,
- void *opaque,
- virFreeCallback freecb,
- int *callbackID);
-
-void
-virObjectEventQueueClear(virObjectEventQueuePtr queue);
-
-void
-virObjectEventStateLock(virObjectEventStatePtr state);
-
-void
-virObjectEventStateUnlock(virObjectEventStatePtr state);
-
-void
-virObjectEventTimer(int timer,
- void *opaque);
-
void *
virObjectEventNew(virClassPtr klass,
virObjectEventDispatchFunc dispatcher,