On 02/10/2016 11:40 AM, Daniel P. Berrange wrote: > The QMP monitor code has two helper methods object_add > and qmp_object_del that are called from several places > in the code (QMP, HMP and main emulator startup). > > The HMP and main emulator startup code also share > further logic that extracts the qom-type & id > values from a qdict. > > We soon need to use this logic from qemu-img, qemu-io > and qemu-nbd too, but don't want those to depend on > the monitor, nor do we want to duplicate the code. > > To avoid this, move some code out of qmp.c and hmp.c > adding new methods to qom/object_interfaces.c > > - user_creatable_add - takes a QDict holding a full > object definition & instantiates it > - user_creatable_add_type - takes an ID, type name, > and QDict holding object properties & instantiates > it > - user_creatable_add_opts - takes a QemuOpts holding > a full object definition & instantiates it > - user_creatable_add_opts_foreach - variant on > user_creatable_add_opts which can be directly used > in conjunction with qemu_opts_foreach. > - user_creatable_del - takes an ID and deletes the > corresponding object > > The existing code is updated to use these new methods. > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > --- > hmp.c | 52 +++--------- > include/monitor/monitor.h | 3 - > include/qom/object_interfaces.h | 92 +++++++++++++++++++++ > qmp.c | 76 ++---------------- > qom/object_interfaces.c | 174 > ++++++++++++++++++++++++++++++++++++++++ > vl.c | 68 ++-------------- > 6 files changed, 290 insertions(+), 175 deletions(-) >
Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature