• D
    Refactor domain events to handle multiple event types · 747c5363
    Daniel P. Berrange 提交于
    The internal domain events APIs are designed to handle the lifecycle
    events. This needs to be refactored to allow arbitrary new event
    types to be handled.
    
     * The signature of virDomainEventDispatchFunc changes to use
       virConnectDomainEventGenericCallback instead of the lifecycle
       event specific virConnectDomainEventCallback
     * Every registered callback gains a unique ID to allow its
       removal based on ID, instead of function pointer
     * Every registered callback gains an 'eventID' to allow callbacks
       for different types of events to be distinguished
     * virDomainEventDispatch is adapted to filter out callbacks
       whose eventID does not match the eventID of the event being
       dispatched
     * virDomainEventDispatch is adapted to filter based on the
       domain name and uuid, if this filter is set for a callback.
     * virDomainEvent type/detail fields are moved into a union to
       allow different data fields for other types of events to be
       added later
    
    * src/conf/domain_event.h, src/conf/domain_event.c: Refactor
      to allow handling of different types of events
    * src/lxc/lxc_driver.c, src/qemu/qemu_driver.c,
      src/remote/remote_driver.c, src/test/test_driver.c,
      src/xen/xen_driver.c: Change dispatch function signature
      to use virConnectDomainEventGenericCallback
    747c5363
domain_event.h 4.7 KB