Am 12.09.2013 um 11:31 hat Paolo Bonzini geschrieben: > Il 12/09/2013 11:15, Wenchao Xia ha scritto: > > This series will remove the usage of symbols of mon-protocol-event in > > qemu-img, qemu-nbd and qemu-io, in short remove the connetion for block > > layer. > > > > Background: > > I am tring to decouple block layer code with other unnnessary components, > > and in ./stub there many symbols that qemu-img linked as fake implemtion. > > As a first step, I am decouple monitor with block layer code, this is the > > first part of it. > > There are still other stub symbols for monitor, which will be solved > > later. > > It seems error handlering is also link with those symbols, and will adjust > > that.
> Patches 1-4 look good. I'm not sure of the advantage of the last four, > however. The ugly part of monitor_protocol_event is not really the > stub, but the dependency on QObject. > > So, in my opinion a more interesting approach would be to describe > events using QAPI types. Generating the events would require a small > amount of code to build QObjects manually, because the event syntax > doesn't match exactly a QAPI union, but that is only a technical detail. You mean the QAPI schema cannot describe events? Why do you think so, and wouldn't this be a reason to extend the schema language? The QMP spec describes events like this: { "event": json-string, "data": json-object, "timestamp": { "seconds": json-number, "microseconds": json-number } } Looks like it could be described as: { 'type': 'EventTypeA', 'data': { 'data': { # event-specific data } } } { 'type': 'EventBase', 'data': { 'event': 'str'. 'timestamp': { 'seconds': 'int', 'microseconds': 'int' } } { 'union': 'Event', 'base:' EventBase', 'discriminator': 'event', 'data': { 'EVENT_NAME_A': 'EventTypeA' } } Kevin