Convert the domain events example program to use the new
events APIs for one of its callback registrations to demo the
new API and interoperability with the old API.
* examples/domain-events/events-c/event-test.c: Convert to
new events API
---
examples/domain-events/events-c/event-test.c | 41 +++++++++++++------------
1 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/examples/domain-events/events-c/event-test.c
b/examples/domain-events/events-c/event-test.c
index 7464f93..ed00fb8 100644
--- a/examples/domain-events/events-c/event-test.c
+++ b/examples/domain-events/events-c/event-test.c
@@ -38,10 +38,6 @@ void *t_opaque = NULL;
/* Prototypes */
const char *eventToString(int event);
-int myDomainEventCallback1 (virConnectPtr conn, virDomainPtr dom,
- int event, int detail, void *opaque);
-int myDomainEventCallback2 (virConnectPtr conn, virDomainPtr dom,
- int event, int detail, void *opaque);
int myEventAddHandleFunc (int fd, int event,
virEventHandleCallback cb,
void *opaque,
@@ -152,11 +148,11 @@ static const char *eventDetailToString(int event, int detail) {
return ret;
}
-int myDomainEventCallback1 (virConnectPtr conn ATTRIBUTE_UNUSED,
- virDomainPtr dom,
- int event,
- int detail,
- void *opaque ATTRIBUTE_UNUSED)
+static int myDomainEventCallback1(virConnectPtr conn ATTRIBUTE_UNUSED,
+ virDomainPtr dom,
+ int event,
+ int detail,
+ void *opaque ATTRIBUTE_UNUSED)
{
printf("%s EVENT: Domain %s(%d) %s %s\n", __func__, virDomainGetName(dom),
virDomainGetID(dom), eventToString(event),
@@ -164,11 +160,11 @@ int myDomainEventCallback1 (virConnectPtr conn ATTRIBUTE_UNUSED,
return 0;
}
-int myDomainEventCallback2 (virConnectPtr conn ATTRIBUTE_UNUSED,
- virDomainPtr dom,
- int event,
- int detail,
- void *opaque ATTRIBUTE_UNUSED)
+static int myDomainEventCallback2(virConnectPtr conn ATTRIBUTE_UNUSED,
+ virDomainPtr dom,
+ int event,
+ int detail,
+ void *opaque ATTRIBUTE_UNUSED)
{
printf("%s EVENT: Domain %s(%d) %s %s\n", __func__, virDomainGetName(dom),
virDomainGetID(dom), eventToString(event),
@@ -293,6 +289,7 @@ int main(int argc, char **argv)
int sts;
int callback1ret = -1;
int callback2ret = -1;
+
struct sigaction action_stop = {
.sa_handler = stop
};
@@ -310,7 +307,7 @@ int main(int argc, char **argv)
myEventRemoveTimeoutFunc);
virConnectPtr dconn = NULL;
- dconn = virConnectOpen (argv[1] ? argv[1] : NULL);
+ dconn = virConnectOpenReadOnly (argv[1] ? argv[1] : NULL);
if (!dconn) {
printf("error opening\n");
return -1;
@@ -324,10 +321,14 @@ int main(int argc, char **argv)
/* Add 2 callbacks to prove this works with more than just one */
callback1ret = virConnectDomainEventRegister(dconn, myDomainEventCallback1,
strdup("callback 1"),
myFreeFunc);
- callback2ret = virConnectDomainEventRegister(dconn, myDomainEventCallback2,
- strdup("callback 2"),
myFreeFunc);
-
- if ((callback1ret == 0) && (callback2ret == 0) ) {
+ callback2ret = virConnectDomainEventRegisterAny(dconn,
+ NULL,
+ VIR_DOMAIN_EVENT_ID_LIFECYCLE,
+
VIR_DOMAIN_EVENT_CALLBACK(myDomainEventCallback2),
+ strdup("callback 2"),
myFreeFunc);
+
+ if ((callback1ret != -1) &&
+ (callback2ret != -1)) {
while(run) {
struct pollfd pfd = { .fd = h_fd,
.events = h_event,
@@ -364,7 +365,7 @@ int main(int argc, char **argv)
DEBUG0("Deregistering event handlers");
virConnectDomainEventDeregister(dconn, myDomainEventCallback1);
- virConnectDomainEventDeregister(dconn, myDomainEventCallback2);
+ virConnectDomainEventDeregisterAny(dconn, callback2ret);
}
--
1.6.6.1