0e16ae4 virsh: add --all flag to 'event' command

Authored and Committed by ericb 10 years ago
    virsh: add --all flag to 'event' command
    
    Similar to our event-test demo program, it's nice to be able to
    have a mode where we can sniff all events at once, rather than
    having to spawn multiple virsh in parallel with one for each
    event type.
    
    (Can I just say our RegisterAny design is lousy?  The fact that
    the majority of our callback pointers have a function signature
    with the opaque data in a different position, and that we have
    to cast the function signature before registering it, makes it
    hard to write a generic callback function; we have to write one
    for every type of event id.  Life would have been easier if we
    had designed the callback as a fixed signature with a void*
    and size parameter, and then allowed the caller to downcast
    the void* to a particular struct for data specific to their
    callback id, where we could have then had a single function
    with a switch statement for each event id, and register that
    one function for all types of events.  It would also be nicer
    if the callback functions knew which callbackID was being used
    when invoking that callback, so that I could use a common data
    structure among all registrations instead of having to create
    an array of one data per callback.  But I really don't want to
    go add yet another event API design.)
    
    * tools/virsh-domain.c (cmdEvent): Add --all parameter; convert
    all callbacks to support shared counter.
    * tools/virsh.pod (event): Document it.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    
        
file modified
+93 -51
file modified
+5 -3