/** * virSecretEventStateRegisterClient: * @conn: connection to associate with callback * @state: object event state * @secret: secret to filter on or NULL for all node secrets * @eventID: ID of the event type to register for * @cb: function to invoke when event occurs * @opaque: data blob to pass to @callback * @freecb: callback to free @opaque * @callbackID: filled with callback ID * * Register the function @cb with connection @conn, from @state, for * events of type @eventID, and return the registration handle in * @callbackID. This version is intended for use on the client side * of RPC. * * Returns: the number of callbacks now registered, or -1 on error */ int virSecretEventStateRegisterClient(virConnectPtr conn, virObjectEventStatePtr state, virSecretPtr secret, int eventID, virConnectSecretEventGenericCallback cb, void *opaque, virFreeCallback freecb, int *callbackID) { char uuidstr[VIR_UUID_STRING_BUFLEN]; if (virSecretEventsInitialize() < 0) return -1; if (secret) virUUIDFormat(secret->uuid, uuidstr); return virObjectEventStateRegisterID(conn, state, secret ? uuidstr : NULL, NULL, NULL, virSecretEventClass, eventID, VIR_OBJECT_EVENT_CALLBACK(cb), opaque, freecb, false, callbackID, true); }
/** * virDomainEventStateRegister: * @conn: connection to associate with callback * @state: object event state * @filter: optional ACL filter to limit which events can be sent * @callback: the callback to add * @opaque: data blob to pass to @callback * @freecb: callback to free @opaque * * Register the function @callback with connection @conn, * from @state, for lifecycle events. * * Returns: the number of lifecycle callbacks now registered, or -1 on error */ int virDomainEventStateRegister(virConnectPtr conn, virObjectEventStatePtr state, virDomainObjListFilter filter, virConnectDomainEventCallback callback, void *opaque, virFreeCallback freecb) { if (virDomainEventsInitialize() < 0) return -1; return virObjectEventStateRegisterID(conn, state, NULL, filter ? virDomainEventFilter : NULL, filter, virDomainEventClass, VIR_DOMAIN_EVENT_ID_LIFECYCLE, VIR_OBJECT_EVENT_CALLBACK(callback), opaque, freecb, NULL, false); }
/** * virNodeDeviceEventStateRegisterClient: * @conn: connection to associate with callback * @state: object event state * @dev: node device to filter on or NULL for all node devices * @eventID: ID of the event type to register for * @cb: function to invoke when event occurs * @opaque: data blob to pass to @callback * @freecb: callback to free @opaque * @callbackID: filled with callback ID * * Register the function @cb with connection @conn, from @state, for * events of type @eventID, and return the registration handle in * @callbackID. This version is intended for use on the client side * of RPC. * * Returns: the number of callbacks now registered, or -1 on error */ int virNodeDeviceEventStateRegisterClient(virConnectPtr conn, virObjectEventStatePtr state, virNodeDevicePtr dev, int eventID, virConnectNodeDeviceEventGenericCallback cb, void *opaque, virFreeCallback freecb, int *callbackID) { if (virNodeDeviceEventsInitialize() < 0) return -1; return virObjectEventStateRegisterID(conn, state, dev ? dev->name : NULL, NULL, NULL, virNodeDeviceEventClass, eventID, VIR_OBJECT_EVENT_CALLBACK(cb), opaque, freecb, false, callbackID, true); }
/** * virDomainEventStateRegisterID: * @conn: connection to associate with callback * @state: object event state * @filter: optional ACL filter to limit which events can be sent * @dom: optional domain for filtering the event * @eventID: ID of the event type to register for * @cb: function to invoke when event fires * @opaque: data blob to pass to @callback * @freecb: callback to free @opaque * @callbackID: filled with callback ID * * Register the function @cb with connection @conn, from @state, for * events of type @eventID, and return the registration handle in * @callbackID. * * Returns: the number of callbacks now registered, or -1 on error */ int virDomainEventStateRegisterID(virConnectPtr conn, virObjectEventStatePtr state, virDomainObjListFilter filter, virDomainPtr dom, int eventID, virConnectDomainEventGenericCallback cb, void *opaque, virFreeCallback freecb, int *callbackID) { if (virDomainEventsInitialize() < 0) return -1; return virObjectEventStateRegisterID(conn, state, dom ? dom->uuid : NULL, filter ? virDomainEventFilter : NULL, filter, virDomainEventClass, eventID, VIR_OBJECT_EVENT_CALLBACK(cb), opaque, freecb, callbackID, false); }
/** * virNetworkEventStateRegisterClient: * @conn: connection to associate with callback * @state: object event state * @net: network to filter on or NULL for all networks * @eventID: ID of the event type to register for * @cb: function to invoke when event occurs * @opaque: data blob to pass to @callback * @freecb: callback to free @opaque * @callbackID: filled with callback ID * * Register the function @cb with connection @conn, from @state, for * events of type @eventID, and return the registration handle in * @callbackID. This version is intended for use on the client side * of RPC. * * Returns: the number of callbacks now registered, or -1 on error */ int virNetworkEventStateRegisterClient(virConnectPtr conn, virObjectEventStatePtr state, virNetworkPtr net, int eventID, virConnectNetworkEventGenericCallback cb, void *opaque, virFreeCallback freecb, int *callbackID) { if (virNetworkEventsInitialize() < 0) return -1; return virObjectEventStateRegisterID(conn, state, net ? net->uuid : NULL, NULL, NULL, virNetworkEventClass, eventID, VIR_OBJECT_EVENT_CALLBACK(cb), opaque, freecb, false, callbackID, true); }