qemu-e2k/qapi
Eric Blake adfb264c9e qapi: Document visitor interfaces, add assertions
The visitor interface for mapping between QObject/QemuOpts/string
and QAPI is scandalously under-documented, making changes to visitor
core, individual visitors, and users of visitors difficult to
coordinate.  Among other questions: when is it safe to pass NULL,
vs. when a string must be provided; which visitors implement which
callbacks; the difference between concrete and virtual visits.

Correct this by retrofitting proper contracts, and document where some
of the interface warts remain (for example, we may want to modify
visit_end_* to require the same 'obj' as the visit_start counterpart,
so the dealloc visitor can be simplified).  Later patches in this
series will tackle some, but not all, of these warts.

Add assertions to (partially) enforce the contract.  Some of these
were only made possible by recent cleanup commits.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1461879932-9020-13-git-send-email-eblake@redhat.com>
[Doc fix from Eric squashed in]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2016-05-12 09:47:54 +02:00
..
block-core.json block: add generic full disk encryption driver 2016-03-30 12:11:26 +02:00
block.json qmp event: Refactor QUORUM_REPORT_BAD 2016-03-14 16:46:43 +01:00
common.json kvm: add support for -machine kernel_irqchip=split 2015-12-17 17:15:40 +01:00
crypto.json crypto: implement the LUKS block encryption format 2016-03-17 16:50:40 +00:00
event.json qmp event: Refactor QUORUM_REPORT_BAD 2016-03-14 16:46:43 +01:00
introspect.json qapi: Use anonymous bases in QMP flat unions 2016-03-18 10:29:26 +01:00
Makefile.objs rename parse_enum_option to qapi_enum_parse and make it public 2014-09-08 11:12:43 +01:00
opts-visitor.c qapi: Guarantee NULL obj on input visitor callback error 2016-05-12 09:47:54 +02:00
qapi-dealloc-visitor.c qapi-visit: Add visitor.type classification 2016-05-12 09:47:54 +02:00
qapi-util.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
qapi-visit-core.c qapi: Document visitor interfaces, add assertions 2016-05-12 09:47:54 +02:00
qmp-dispatch.c qmp: Drop dead command->type 2016-05-12 09:47:54 +02:00
qmp-event.c qapi: Clean up includes 2016-02-04 17:41:30 +00:00
qmp-input-visitor.c qmp-input: Refactor when list is advanced 2016-05-12 09:47:54 +02:00
qmp-output-visitor.c qapi-visit: Add visitor.type classification 2016-05-12 09:47:54 +02:00
qmp-registry.c qmp: Drop dead command->type 2016-05-12 09:47:54 +02:00
rocker.json qmp/hmp: add rocker device support 2015-06-12 13:42:17 +01:00
string-input-visitor.c qapi: Guarantee NULL obj on input visitor callback error 2016-05-12 09:47:54 +02:00
string-output-visitor.c qapi-visit: Add visitor.type classification 2016-05-12 09:47:54 +02:00
trace.json qapi: Use 'struct' instead of 'type' in schema 2015-05-05 18:39:01 +02:00