Loading api_test.go +1 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ var ( "virConnectDomainEventMemoryDeviceSizeChangeCallback", "virConnectDomainEventNICMACChangeCallback", "virConnectDomainEventChannelLifecycleCallback", "virConnectDomainEventVcpuRemovedCallback", "virConnectDomainQemuMonitorEventCallback", /* Network event callback typedefs */ Loading domain.go +15 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,21 @@ const ( DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX = DomainEventGraphicsAddressType(C.VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX) ) type DomainEventChannelLifecycleState int const ( DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED = DomainEventChannelLifecycleReason(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED) DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED = DomainEventChannelLifecycleReason(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED) ) type DomainEventChannelLifecycleReason int const ( DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL = DomainEventChannelLifecycleState(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL) DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED = DomainEventChannelLifecycleState(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED) DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN = DomainEventChannelLifecycleReason(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN) ) type DomainBlockJobType int const ( Loading domain_events.go +88 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,20 @@ type DomainEventNICMACChange struct { type DomainEventNICMACChangeCallback func(c *Connect, d *Domain, event *DomainEventNICMACChange) type DomainEventChannelLifecycle struct { ChannelName string State DomainEventChannelLifecycleState Reason DomainEventChannelLifecycleReason } type DomainEventChannelLifecycleCallback func(c *Connect, d *Domain, event *DomainEventChannelLifecycle) type DomainEventVcpuRemoved struct { ID uint } type DomainEventVcpuRemovedCallback func(c *Connect, d *Domain, event *DomainEventVcpuRemoved) //export virGoDomainEventLifecycleCallback func virGoDomainEventLifecycleCallback(c C.virConnectPtr, d C.virDomainPtr, event int, detail int, Loading Loading @@ -1038,6 +1052,40 @@ func virGoDomainEventNICMACChangeCallback(c C.virConnectPtr, d C.virDomainPtr, a callback(connection, domain, eventDetails) } //export virGoDomainEventChannelLifecycleCallback func virGoDomainEventChannelLifecycleCallback(c C.virConnectPtr, d C.virDomainPtr, channelName *C.char, state int, reason int, goCallbackId int) { domain := &Domain{ptr: d} connection := &Connect{ptr: c} eventDetails := &DomainEventChannelLifecycle{ ChannelName: C.GoString(channelName), State: DomainEventChannelLifecycleState(state), Reason: DomainEventChannelLifecycleReason(reason), } callbackFunc := getCallbackId(goCallbackId) callback, ok := callbackFunc.(DomainEventChannelLifecycleCallback) if !ok { panic("Inappropriate callback type called") } callback(connection, domain, eventDetails) } //export virGoDomainEventVcpuRemovedCallback func virGoDomainEventVcpuRemovedCallback(c C.virConnectPtr, d C.virDomainPtr, vcpuid uint, goCallbackId int) { domain := &Domain{ptr: d} connection := &Connect{ptr: c} eventDetails := &DomainEventVcpuRemoved{ ID: vcpuid, } callbackFunc := getCallbackId(goCallbackId) callback, ok := callbackFunc.(DomainEventVcpuRemovedCallback) if !ok { panic("Inappropriate callback type called") } callback(connection, domain, eventDetails) } func (c *Connect) DomainEventLifecycleRegister(dom *Domain, callback DomainEventLifecycleCallback) (int, error) { goCallBackId := registerCallbackId(callback) Loading Loading @@ -1598,6 +1646,46 @@ func (c *Connect) DomainEventNICMACChangeRegister(dom *Domain, callback DomainEv return int(ret), nil } func (c *Connect) DomainEventChannelLifecycleRegister(dom *Domain, callback DomainEventChannelLifecycleCallback) (int, error) { goCallBackId := registerCallbackId(callback) callbackPtr := unsafe.Pointer(C.virGoDomainEventChannelLifecycleCallbackHelper) var cdom C.virDomainPtr if dom != nil { cdom = dom.ptr } var err C.virError ret := C.virConnectDomainEventRegisterAnyHelper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId), &err) if ret == -1 { virGoFreeCallbackId(goCallBackId) return 0, makeError(&err) } return int(ret), nil } func (c *Connect) DomainEventVcpuRemovedRegister(dom *Domain, callback DomainEventVcpuRemovedCallback) (int, error) { goCallBackId := registerCallbackId(callback) callbackPtr := unsafe.Pointer(C.virGoDomainEventVcpuRemovedCallbackHelper) var cdom C.virDomainPtr if dom != nil { cdom = dom.ptr } var err C.virError ret := C.virConnectDomainEventRegisterAnyHelper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_VCPU_REMOVED, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId), &err) if ret == -1 { virGoFreeCallbackId(goCallBackId) return 0, makeError(&err) } return int(ret), nil } func (c *Connect) DomainEventDeregister(callbackId int) error { // Deregister the callback var err C.virError Loading domain_events_helper.go +20 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,26 @@ void virGoDomainEventNICMACChangeCallbackHelper(virConnectPtr conn, virGoDomainEventNICMACChangeCallback(conn, dom, alias, oldMAC, newMAC, (int)(intptr_t)opaque); } extern void virGoDomainEventChannelLifecycleCallback(virConnectPtr, virDomainPtr, const char *, int, int, int); void virGoDomainEventChannelLifecycleCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *channelName, int state, int reason, void *opaque) { virGoDomainEventChannelLifecycleCallback(conn, dom, channelName, state, reason, (int)(intptr_t)opaque); } extern void virGoDomainEventVcpuRemovedCallback(virConnectPtr, virDomainPtr, int, int); void virGoDomainEventVcpuRemovedCallbackHelper(virConnectPtr conn, virDomainPtr dom, int vcpuid, void *opaque) { virGoDomainEventVcpuRemovedCallback(conn, dom, vcpuid, (int)(intptr_t)opaque); } int virConnectDomainEventRegisterAnyHelper(virConnectPtr conn, virDomainPtr dom, Loading domain_events_helper.h +14 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,20 @@ virGoDomainEventNICMACChangeCallbackHelper(virConnectPtr conn, const char *newMAC, void *opaque); void virGoDomainEventChannelLifecycleCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *channelName, int state, int reason, void *opaque); void virGoDomainEventVcpuRemovedCallbackHelper(virConnectPtr conn, virDomainPtr dom, int vcpuid, void *opaque); int virConnectDomainEventRegisterAnyHelper(virConnectPtr conn, virDomainPtr dom, Loading Loading
api_test.go +1 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ var ( "virConnectDomainEventMemoryDeviceSizeChangeCallback", "virConnectDomainEventNICMACChangeCallback", "virConnectDomainEventChannelLifecycleCallback", "virConnectDomainEventVcpuRemovedCallback", "virConnectDomainQemuMonitorEventCallback", /* Network event callback typedefs */ Loading
domain.go +15 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,21 @@ const ( DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX = DomainEventGraphicsAddressType(C.VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX) ) type DomainEventChannelLifecycleState int const ( DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED = DomainEventChannelLifecycleReason(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_CONNECTED) DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED = DomainEventChannelLifecycleReason(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_STATE_DISCONNECTED) ) type DomainEventChannelLifecycleReason int const ( DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL = DomainEventChannelLifecycleState(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_CHANNEL) DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED = DomainEventChannelLifecycleState(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_DOMAIN_STARTED) DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN = DomainEventChannelLifecycleReason(C.VIR_CONNECT_DOMAIN_EVENT_CHANNEL_LIFECYCLE_REASON_UNKNOWN) ) type DomainBlockJobType int const ( Loading
domain_events.go +88 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,20 @@ type DomainEventNICMACChange struct { type DomainEventNICMACChangeCallback func(c *Connect, d *Domain, event *DomainEventNICMACChange) type DomainEventChannelLifecycle struct { ChannelName string State DomainEventChannelLifecycleState Reason DomainEventChannelLifecycleReason } type DomainEventChannelLifecycleCallback func(c *Connect, d *Domain, event *DomainEventChannelLifecycle) type DomainEventVcpuRemoved struct { ID uint } type DomainEventVcpuRemovedCallback func(c *Connect, d *Domain, event *DomainEventVcpuRemoved) //export virGoDomainEventLifecycleCallback func virGoDomainEventLifecycleCallback(c C.virConnectPtr, d C.virDomainPtr, event int, detail int, Loading Loading @@ -1038,6 +1052,40 @@ func virGoDomainEventNICMACChangeCallback(c C.virConnectPtr, d C.virDomainPtr, a callback(connection, domain, eventDetails) } //export virGoDomainEventChannelLifecycleCallback func virGoDomainEventChannelLifecycleCallback(c C.virConnectPtr, d C.virDomainPtr, channelName *C.char, state int, reason int, goCallbackId int) { domain := &Domain{ptr: d} connection := &Connect{ptr: c} eventDetails := &DomainEventChannelLifecycle{ ChannelName: C.GoString(channelName), State: DomainEventChannelLifecycleState(state), Reason: DomainEventChannelLifecycleReason(reason), } callbackFunc := getCallbackId(goCallbackId) callback, ok := callbackFunc.(DomainEventChannelLifecycleCallback) if !ok { panic("Inappropriate callback type called") } callback(connection, domain, eventDetails) } //export virGoDomainEventVcpuRemovedCallback func virGoDomainEventVcpuRemovedCallback(c C.virConnectPtr, d C.virDomainPtr, vcpuid uint, goCallbackId int) { domain := &Domain{ptr: d} connection := &Connect{ptr: c} eventDetails := &DomainEventVcpuRemoved{ ID: vcpuid, } callbackFunc := getCallbackId(goCallbackId) callback, ok := callbackFunc.(DomainEventVcpuRemovedCallback) if !ok { panic("Inappropriate callback type called") } callback(connection, domain, eventDetails) } func (c *Connect) DomainEventLifecycleRegister(dom *Domain, callback DomainEventLifecycleCallback) (int, error) { goCallBackId := registerCallbackId(callback) Loading Loading @@ -1598,6 +1646,46 @@ func (c *Connect) DomainEventNICMACChangeRegister(dom *Domain, callback DomainEv return int(ret), nil } func (c *Connect) DomainEventChannelLifecycleRegister(dom *Domain, callback DomainEventChannelLifecycleCallback) (int, error) { goCallBackId := registerCallbackId(callback) callbackPtr := unsafe.Pointer(C.virGoDomainEventChannelLifecycleCallbackHelper) var cdom C.virDomainPtr if dom != nil { cdom = dom.ptr } var err C.virError ret := C.virConnectDomainEventRegisterAnyHelper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_CHANNEL_LIFECYCLE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId), &err) if ret == -1 { virGoFreeCallbackId(goCallBackId) return 0, makeError(&err) } return int(ret), nil } func (c *Connect) DomainEventVcpuRemovedRegister(dom *Domain, callback DomainEventVcpuRemovedCallback) (int, error) { goCallBackId := registerCallbackId(callback) callbackPtr := unsafe.Pointer(C.virGoDomainEventVcpuRemovedCallbackHelper) var cdom C.virDomainPtr if dom != nil { cdom = dom.ptr } var err C.virError ret := C.virConnectDomainEventRegisterAnyHelper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_VCPU_REMOVED, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId), &err) if ret == -1 { virGoFreeCallbackId(goCallBackId) return 0, makeError(&err) } return int(ret), nil } func (c *Connect) DomainEventDeregister(callbackId int) error { // Deregister the callback var err C.virError Loading
domain_events_helper.go +20 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,26 @@ void virGoDomainEventNICMACChangeCallbackHelper(virConnectPtr conn, virGoDomainEventNICMACChangeCallback(conn, dom, alias, oldMAC, newMAC, (int)(intptr_t)opaque); } extern void virGoDomainEventChannelLifecycleCallback(virConnectPtr, virDomainPtr, const char *, int, int, int); void virGoDomainEventChannelLifecycleCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *channelName, int state, int reason, void *opaque) { virGoDomainEventChannelLifecycleCallback(conn, dom, channelName, state, reason, (int)(intptr_t)opaque); } extern void virGoDomainEventVcpuRemovedCallback(virConnectPtr, virDomainPtr, int, int); void virGoDomainEventVcpuRemovedCallbackHelper(virConnectPtr conn, virDomainPtr dom, int vcpuid, void *opaque) { virGoDomainEventVcpuRemovedCallback(conn, dom, vcpuid, (int)(intptr_t)opaque); } int virConnectDomainEventRegisterAnyHelper(virConnectPtr conn, virDomainPtr dom, Loading
domain_events_helper.h +14 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,20 @@ virGoDomainEventNICMACChangeCallbackHelper(virConnectPtr conn, const char *newMAC, void *opaque); void virGoDomainEventChannelLifecycleCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *channelName, int state, int reason, void *opaque); void virGoDomainEventVcpuRemovedCallbackHelper(virConnectPtr conn, virDomainPtr dom, int vcpuid, void *opaque); int virConnectDomainEventRegisterAnyHelper(virConnectPtr conn, virDomainPtr dom, Loading