Message ID | 1473088600-17930-4-git-send-email-berrange@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
"Daniel P. Berrange" <berrange@redhat.com> writes: > The QmpInputVisitor has no direct dependancy on QMP. It is > valid to use it anywhere that one has a QObject. Rename it > to better reflect its functionality as a generic QObject > to QAPI convertor. > > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > --- > docs/qapi-code-gen.txt | 2 +- > ...qmp-input-visitor.h => qobject-input-visitor.h} | 10 +- > monitor.c | 2 +- > qapi/Makefile.objs | 2 +- > ...qmp-input-visitor.c => qobject-input-visitor.c} | 171 +++++++++++---------- > qmp.c | 4 +- > qom/qom-qobject.c | 4 +- > scripts/qapi-commands.py | 4 +- > tests/.gitignore | 4 +- > tests/Makefile.include | 12 +- > tests/check-qnull.c | 4 +- > tests/test-qmp-commands.c | 4 +- > ...-input-strict.c => test-qobject-input-strict.c} | 4 +- > ...nput-visitor.c => test-qobject-input-visitor.c} | 4 +- > tests/test-string-input-visitor.c | 2 +- > tests/test-visitor-serialization.c | 4 +- > util/qemu-sockets.c | 2 +- > 17 files changed, 121 insertions(+), 118 deletions(-) > rename include/qapi/{qmp-input-visitor.h => qobject-input-visitor.h} (63%) > rename qapi/{qmp-input-visitor.c => qobject-input-visitor.c} (56%) > rename tests/{test-qmp-input-strict.c => test-qobject-input-strict.c} (99%) > rename tests/{test-qmp-input-visitor.c => test-qobject-input-visitor.c} (99%) $ git-grep -Ei 'qmp.?input.*?vis' include/qapi/visitor.h: * the dealloc and QMP input/output visitors are general, the string, target-s390x/cpu_models.c:#include "qapi/qmp-input-visitor.h" target-s390x/cpu_models.c: visitor = qmp_input_visitor_new(info->props, true); tests/test-qobject-input-strict.c: * QMP Input Visitor unit-tests (strict mode). tests/test-qobject-input-visitor.c: * QMP Input Visitor unit-tests. > > diff --git a/docs/qapi-code-gen.txt b/docs/qapi-code-gen.txt > index de298dc..a011872 100644 > --- a/docs/qapi-code-gen.txt > +++ b/docs/qapi-code-gen.txt > @@ -1024,7 +1024,7 @@ Example: > Visitor *v; > UserDefOneList *arg1 = NULL; > > - v = qmp_input_visitor_new(QOBJECT(args), true); > + v = qobject_input_visitor_new(QOBJECT(args), true); > visit_start_struct(v, NULL, NULL, 0, &err); > if (err) { > goto out; > diff --git a/include/qapi/qmp-input-visitor.h b/include/qapi/qobject-input-visitor.h > similarity index 63% > rename from include/qapi/qmp-input-visitor.h > rename to include/qapi/qobject-input-visitor.h > index f3ff5f3..cde328d 100644 > --- a/include/qapi/qmp-input-visitor.h > +++ b/include/qapi/qobject-input-visitor.h > @@ -11,20 +11,20 @@ > * > */ > > -#ifndef QMP_INPUT_VISITOR_H > -#define QMP_INPUT_VISITOR_H > +#ifndef QOBJECT_INPUT_VISITOR_H > +#define QOBJECT_INPUT_VISITOR_H > > #include "qapi/visitor.h" > #include "qapi/qmp/qobject.h" > > -typedef struct QmpInputVisitor QmpInputVisitor; > +typedef struct QObjectInputVisitor QObjectInputVisitor; > > /* > - * Return a new input visitor that converts QMP to QAPI. > + * Return a new input visitor that converts a QObject to a QAPI object. > * > * Set @strict to reject a parse that doesn't consume all keys of a > * dictionary; otherwise excess input is ignored. > */ > -Visitor *qmp_input_visitor_new(QObject *obj, bool strict); > +Visitor *qobject_input_visitor_new(QObject *obj, bool strict); > > #endif > diff --git a/monitor.c b/monitor.c > index 5c00373..b151934 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -998,7 +998,7 @@ EventInfoList *qmp_query_events(Error **errp) > * directly into QObject instead of first parsing it with > * visit_type_SchemaInfoList() into a SchemaInfoList, then marshal it > * to QObject with generated output marshallers, every time. Instead, > - * we do it in test-qmp-input-visitor.c, just to make sure > + * we do it in test-qobject-input-visitor.c, just to make sure > * qapi-introspect.py's output actually conforms to the schema. > */ > static void qmp_query_qmp_schema(QDict *qdict, QObject **ret_data, > diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs > index 7ea4aeb..6ec7bdc 100644 > --- a/qapi/Makefile.objs > +++ b/qapi/Makefile.objs > @@ -1,4 +1,4 @@ > -util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o > +util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qobject-input-visitor.o > util-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o > util-obj-y += string-input-visitor.o string-output-visitor.o > util-obj-y += opts-visitor.o qapi-clone-visitor.o > diff --git a/qapi/qmp-input-visitor.c b/qapi/qobject-input-visitor.c > similarity index 56% > rename from qapi/qmp-input-visitor.c > rename to qapi/qobject-input-visitor.c > index 64dd392..5ff3db3 100644 > --- a/qapi/qmp-input-visitor.c > +++ b/qapi/qobject-input-visitor.c > @@ -14,7 +14,7 @@ > > #include "qemu/osdep.h" > #include "qapi/error.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "qapi/visitor-impl.h" > #include "qemu/queue.h" > #include "qemu-common.h" > @@ -34,7 +34,7 @@ typedef struct StackObject > QSLIST_ENTRY(StackObject) node; > } StackObject; > > -struct QmpInputVisitor > +struct QObjectInputVisitor > { > Visitor visitor; > > @@ -49,14 +49,14 @@ struct QmpInputVisitor > bool strict; > }; > > -static QmpInputVisitor *to_qiv(Visitor *v) > +static QObjectInputVisitor *to_qiv(Visitor *v) > { > - return container_of(v, QmpInputVisitor, visitor); > + return container_of(v, QObjectInputVisitor, visitor); > } > > -static QObject *qmp_input_get_object(QmpInputVisitor *qiv, > - const char *name, > - bool consume) > +static QObject *qobject_input_get_object(QObjectInputVisitor *qiv, > + const char *name, > + bool consume) The replacement of qmp_input by qobject_input makes our long function names even longer. Oh well. > { > StackObject *tos; > QObject *qobj; > @@ -97,8 +97,9 @@ static void qdict_add_key(const char *key, QObject *obj, void *opaque) > g_hash_table_insert(h, (gpointer) key, NULL); > } > > -static const QListEntry *qmp_input_push(QmpInputVisitor *qiv, QObject *obj, > - void *qapi, Error **errp) > +static const QListEntry *qobject_input_push(QObjectInputVisitor *qiv, > + QObject *obj, void *qapi, > + Error **errp) > { > GHashTable *h; > StackObject *tos = g_new0(StackObject, 1); > @@ -120,9 +121,9 @@ static const QListEntry *qmp_input_push(QmpInputVisitor *qiv, QObject *obj, > } > > > -static void qmp_input_check_struct(Visitor *v, Error **errp) > +static void qobject_input_check_struct(Visitor *v, Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > + QObjectInputVisitor *qiv = to_qiv(v); > StackObject *tos = QSLIST_FIRST(&qiv->stack); > > assert(tos && !tos->entry); > @@ -140,7 +141,7 @@ static void qmp_input_check_struct(Visitor *v, Error **errp) > } > } > > -static void qmp_input_stack_object_free(StackObject *tos) > +static void qobject_input_stack_object_free(StackObject *tos) > { > if (tos->h) { > g_hash_table_unref(tos->h); > @@ -149,21 +150,21 @@ static void qmp_input_stack_object_free(StackObject *tos) > g_free(tos); > } > > -static void qmp_input_pop(Visitor *v, void **obj) > +static void qobject_input_pop(Visitor *v, void **obj) > { > - QmpInputVisitor *qiv = to_qiv(v); > + QObjectInputVisitor *qiv = to_qiv(v); > StackObject *tos = QSLIST_FIRST(&qiv->stack); > > assert(tos && tos->qapi == obj); > QSLIST_REMOVE_HEAD(&qiv->stack, node); > - qmp_input_stack_object_free(tos); > + qobject_input_stack_object_free(tos); > } > > -static void qmp_input_start_struct(Visitor *v, const char *name, void **obj, > - size_t size, Error **errp) > +static void qobject_input_start_struct(Visitor *v, const char *name, void **obj, > + size_t size, Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, true); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, true); > Error *err = NULL; > > if (obj) { > @@ -175,7 +176,7 @@ static void qmp_input_start_struct(Visitor *v, const char *name, void **obj, > return; > } > > - qmp_input_push(qiv, qobj, obj, &err); > + qobject_input_push(qiv, qobj, obj, &err); > if (err) { > error_propagate(errp, err); > return; > @@ -187,11 +188,12 @@ static void qmp_input_start_struct(Visitor *v, const char *name, void **obj, > } > > > -static void qmp_input_start_list(Visitor *v, const char *name, > - GenericList **list, size_t size, Error **errp) > +static void qobject_input_start_list(Visitor *v, const char *name, > + GenericList **list, size_t size, > + Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, true); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, true); > const QListEntry *entry; > > if (!qobj || qobject_type(qobj) != QTYPE_QLIST) { > @@ -203,7 +205,7 @@ static void qmp_input_start_list(Visitor *v, const char *name, > return; > } > > - entry = qmp_input_push(qiv, qobj, list, errp); > + entry = qobject_input_push(qiv, qobj, list, errp); > if (list) { > if (entry) { > *list = g_malloc0(size); > @@ -213,10 +215,10 @@ static void qmp_input_start_list(Visitor *v, const char *name, > } > } > > -static GenericList *qmp_input_next_list(Visitor *v, GenericList *tail, > - size_t size) > +static GenericList *qobject_input_next_list(Visitor *v, GenericList *tail, > + size_t size) > { > - QmpInputVisitor *qiv = to_qiv(v); > + QObjectInputVisitor *qiv = to_qiv(v); > StackObject *so = QSLIST_FIRST(&qiv->stack); > > if (!so->entry) { > @@ -227,12 +229,12 @@ static GenericList *qmp_input_next_list(Visitor *v, GenericList *tail, > } > > > -static void qmp_input_start_alternate(Visitor *v, const char *name, > - GenericAlternate **obj, size_t size, > - bool promote_int, Error **errp) > +static void qobject_input_start_alternate(Visitor *v, const char *name, > + GenericAlternate **obj, size_t size, > + bool promote_int, Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, false); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, false); > > if (!qobj) { > *obj = NULL; > @@ -246,11 +248,11 @@ static void qmp_input_start_alternate(Visitor *v, const char *name, > } > } > > -static void qmp_input_type_int64(Visitor *v, const char *name, int64_t *obj, > - Error **errp) > +static void qobject_input_type_int64(Visitor *v, const char *name, int64_t *obj, > + Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QInt *qint = qobject_to_qint(qmp_input_get_object(qiv, name, true)); > + QObjectInputVisitor *qiv = to_qiv(v); > + QInt *qint = qobject_to_qint(qobject_input_get_object(qiv, name, true)); > > if (!qint) { > error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", > @@ -261,12 +263,12 @@ static void qmp_input_type_int64(Visitor *v, const char *name, int64_t *obj, > *obj = qint_get_int(qint); > } > > -static void qmp_input_type_uint64(Visitor *v, const char *name, uint64_t *obj, > - Error **errp) > +static void qobject_input_type_uint64(Visitor *v, const char *name, > + uint64_t *obj, Error **errp) > { > /* FIXME: qobject_to_qint mishandles values over INT64_MAX */ > - QmpInputVisitor *qiv = to_qiv(v); > - QInt *qint = qobject_to_qint(qmp_input_get_object(qiv, name, true)); > + QObjectInputVisitor *qiv = to_qiv(v); > + QInt *qint = qobject_to_qint(qobject_input_get_object(qiv, name, true)); > > if (!qint) { > error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", > @@ -277,11 +279,11 @@ static void qmp_input_type_uint64(Visitor *v, const char *name, uint64_t *obj, > *obj = qint_get_int(qint); > } > > -static void qmp_input_type_bool(Visitor *v, const char *name, bool *obj, > - Error **errp) > +static void qobject_input_type_bool(Visitor *v, const char *name, bool *obj, > + Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QBool *qbool = qobject_to_qbool(qmp_input_get_object(qiv, name, true)); > + QObjectInputVisitor *qiv = to_qiv(v); > + QBool *qbool = qobject_to_qbool(qobject_input_get_object(qiv, name, true)); > > if (!qbool) { > error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", > @@ -292,11 +294,12 @@ static void qmp_input_type_bool(Visitor *v, const char *name, bool *obj, > *obj = qbool_get_bool(qbool); > } > > -static void qmp_input_type_str(Visitor *v, const char *name, char **obj, > - Error **errp) > +static void qobject_input_type_str(Visitor *v, const char *name, char **obj, > + Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QString *qstr = qobject_to_qstring(qmp_input_get_object(qiv, name, true)); > + QObjectInputVisitor *qiv = to_qiv(v); > + QString *qstr = qobject_to_qstring(qobject_input_get_object(qiv, name, > + true)); > > if (!qstr) { > *obj = NULL; > @@ -308,11 +311,11 @@ static void qmp_input_type_str(Visitor *v, const char *name, char **obj, > *obj = g_strdup(qstring_get_str(qstr)); > } > > -static void qmp_input_type_number(Visitor *v, const char *name, double *obj, > - Error **errp) > +static void qobject_input_type_number(Visitor *v, const char *name, double *obj, > + Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, true); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, true); > QInt *qint; > QFloat *qfloat; > > @@ -332,20 +335,20 @@ static void qmp_input_type_number(Visitor *v, const char *name, double *obj, > "number"); > } > > -static void qmp_input_type_any(Visitor *v, const char *name, QObject **obj, > - Error **errp) > +static void qobject_input_type_any(Visitor *v, const char *name, QObject **obj, > + Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, true); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, true); > > qobject_incref(qobj); > *obj = qobj; > } > > -static void qmp_input_type_null(Visitor *v, const char *name, Error **errp) > +static void qobject_input_type_null(Visitor *v, const char *name, Error **errp) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, true); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, true); > > if (qobject_type(qobj) != QTYPE_QNULL) { > error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", > @@ -353,10 +356,10 @@ static void qmp_input_type_null(Visitor *v, const char *name, Error **errp) > } > } > > -static void qmp_input_optional(Visitor *v, const char *name, bool *present) > +static void qobject_input_optional(Visitor *v, const char *name, bool *present) > { > - QmpInputVisitor *qiv = to_qiv(v); > - QObject *qobj = qmp_input_get_object(qiv, name, false); > + QObjectInputVisitor *qiv = to_qiv(v); > + QObject *qobj = qobject_input_get_object(qiv, name, false); > > if (!qobj) { > *present = false; > @@ -366,43 +369,43 @@ static void qmp_input_optional(Visitor *v, const char *name, bool *present) > *present = true; > } > > -static void qmp_input_free(Visitor *v) > +static void qobject_input_free(Visitor *v) > { > - QmpInputVisitor *qiv = to_qiv(v); > + QObjectInputVisitor *qiv = to_qiv(v); > while (!QSLIST_EMPTY(&qiv->stack)) { > StackObject *tos = QSLIST_FIRST(&qiv->stack); > > QSLIST_REMOVE_HEAD(&qiv->stack, node); > - qmp_input_stack_object_free(tos); > + qobject_input_stack_object_free(tos); > } > > qobject_decref(qiv->root); > g_free(qiv); > } > > -Visitor *qmp_input_visitor_new(QObject *obj, bool strict) > +Visitor *qobject_input_visitor_new(QObject *obj, bool strict) > { > - QmpInputVisitor *v; > + QObjectInputVisitor *v; > > v = g_malloc0(sizeof(*v)); > > v->visitor.type = VISITOR_INPUT; > - v->visitor.start_struct = qmp_input_start_struct; > - v->visitor.check_struct = qmp_input_check_struct; > - v->visitor.end_struct = qmp_input_pop; > - v->visitor.start_list = qmp_input_start_list; > - v->visitor.next_list = qmp_input_next_list; > - v->visitor.end_list = qmp_input_pop; > - v->visitor.start_alternate = qmp_input_start_alternate; > - v->visitor.type_int64 = qmp_input_type_int64; > - v->visitor.type_uint64 = qmp_input_type_uint64; > - v->visitor.type_bool = qmp_input_type_bool; > - v->visitor.type_str = qmp_input_type_str; > - v->visitor.type_number = qmp_input_type_number; > - v->visitor.type_any = qmp_input_type_any; > - v->visitor.type_null = qmp_input_type_null; > - v->visitor.optional = qmp_input_optional; > - v->visitor.free = qmp_input_free; > + v->visitor.start_struct = qobject_input_start_struct; > + v->visitor.check_struct = qobject_input_check_struct; > + v->visitor.end_struct = qobject_input_pop; > + v->visitor.start_list = qobject_input_start_list; > + v->visitor.next_list = qobject_input_next_list; > + v->visitor.end_list = qobject_input_pop; > + v->visitor.start_alternate = qobject_input_start_alternate; > + v->visitor.type_int64 = qobject_input_type_int64; > + v->visitor.type_uint64 = qobject_input_type_uint64; > + v->visitor.type_bool = qobject_input_type_bool; > + v->visitor.type_str = qobject_input_type_str; > + v->visitor.type_number = qobject_input_type_number; > + v->visitor.type_any = qobject_input_type_any; > + v->visitor.type_null = qobject_input_type_null; > + v->visitor.optional = qobject_input_optional; > + v->visitor.free = qobject_input_free; > v->strict = strict; > > v->root = obj; > diff --git a/qmp.c b/qmp.c > index b6d531e..ffc8828 100644 > --- a/qmp.c > +++ b/qmp.c > @@ -30,7 +30,7 @@ > #include "qom/qom-qobject.h" > #include "qapi/qmp/qerror.h" > #include "qapi/qmp/qobject.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "hw/boards.h" > #include "qom/object_interfaces.h" > #include "hw/mem/pc-dimm.h" > @@ -666,7 +666,7 @@ void qmp_object_add(const char *type, const char *id, > } > } > > - v = qmp_input_visitor_new(props, true); > + v = qobject_input_visitor_new(props, true); > obj = user_creatable_add_type(type, id, pdict, v, errp); > visit_free(v); > if (obj) { > diff --git a/qom/qom-qobject.c b/qom/qom-qobject.c > index c225abc..81959e0 100644 > --- a/qom/qom-qobject.c > +++ b/qom/qom-qobject.c > @@ -15,7 +15,7 @@ > #include "qom/object.h" > #include "qom/qom-qobject.h" > #include "qapi/visitor.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "qapi/qmp-output-visitor.h" > > void object_property_set_qobject(Object *obj, QObject *value, > @@ -23,7 +23,7 @@ void object_property_set_qobject(Object *obj, QObject *value, > { > Visitor *v; > /* TODO: Should we reject, rather than ignore, excess input? */ > - v = qmp_input_visitor_new(value, false); > + v = qobject_input_visitor_new(value, false); > object_property_set(obj, v, name, errp); > visit_free(v); > } > diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py > index a06a2c4..3010163 100644 > --- a/scripts/qapi-commands.py > +++ b/scripts/qapi-commands.py > @@ -117,7 +117,7 @@ def gen_marshal(name, arg_type, boxed, ret_type): > Visitor *v; > %(c_name)s arg = {0}; > > - v = qmp_input_visitor_new(QOBJECT(args), true); > + v = qobject_input_visitor_new(QOBJECT(args), true); > visit_start_struct(v, NULL, NULL, 0, &err); > if (err) { > goto out; > @@ -279,7 +279,7 @@ fdef.write(mcgen(''' > #include "qapi/qmp/dispatch.h" > #include "qapi/visitor.h" > #include "qapi/qmp-output-visitor.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "qapi/dealloc-visitor.h" > #include "%(prefix)sqapi-types.h" > #include "%(prefix)sqapi-visit.h" > diff --git a/tests/.gitignore b/tests/.gitignore > index dbb5263..4ec0a1a 100644 > --- a/tests/.gitignore > +++ b/tests/.gitignore > @@ -57,8 +57,8 @@ test-qht-par > test-qmp-commands > test-qmp-commands.h > test-qmp-event > -test-qmp-input-strict > -test-qmp-input-visitor > +test-qobject-input-strict > +test-qobject-input-visitor > test-qmp-introspect.[ch] > test-qmp-marshal.c > test-qmp-output-visitor > diff --git a/tests/Makefile.include b/tests/Makefile.include > index 14be491..5ac61b7 100644 > --- a/tests/Makefile.include > +++ b/tests/Makefile.include > @@ -24,9 +24,9 @@ check-unit-y += tests/test-qmp-output-visitor$(EXESUF) > gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c > check-unit-y += tests/test-clone-visitor$(EXESUF) > gcov-files-test-clone-visitor-y = qapi/qapi-clone-visitor.c > -check-unit-y += tests/test-qmp-input-visitor$(EXESUF) > -gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c > -check-unit-y += tests/test-qmp-input-strict$(EXESUF) > +check-unit-y += tests/test-qobject-input-visitor$(EXESUF) > +gcov-files-test-qobject-input-visitor-y = qapi/qobject-input-visitor.c > +check-unit-y += tests/test-qobject-input-strict$(EXESUF) > check-unit-y += tests/test-qmp-commands$(EXESUF) > gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c > check-unit-y += tests/test-string-input-visitor$(EXESUF) > @@ -415,7 +415,7 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ > tests/test-coroutine.o tests/test-string-output-visitor.o \ > tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \ > tests/test-clone-visitor.o \ > - tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \ > + tests/test-qobject-input-visitor.o tests/test-qobject-input-strict.o \ > tests/test-qmp-commands.o tests/test-visitor-serialization.o \ > tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \ > tests/test-opts-visitor.o tests/test-qmp-event.o \ > @@ -514,8 +514,8 @@ tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(te > tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) > tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) > tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y) > -tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) > -tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) > +tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y) > +tests/test-qobject-input-strict$(EXESUF): tests/test-qobject-input-strict.o $(test-qapi-obj-y) > tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) > tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) > tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y) > diff --git a/tests/check-qnull.c b/tests/check-qnull.c > index dc906b1..eeb803a 100644 > --- a/tests/check-qnull.c > +++ b/tests/check-qnull.c > @@ -10,7 +10,7 @@ > > #include "qapi/qmp/qobject.h" > #include "qemu-common.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "qapi/qmp-output-visitor.h" > #include "qapi/error.h" > > @@ -47,7 +47,7 @@ static void qnull_visit_test(void) > > g_assert(qnull_.refcnt == 1); > obj = qnull(); > - v = qmp_input_visitor_new(obj, true); > + v = qobject_input_visitor_new(obj, true); > qobject_decref(obj); > visit_type_null(v, NULL, &error_abort); > visit_free(v); > diff --git a/tests/test-qmp-commands.c b/tests/test-qmp-commands.c > index 261fd9e..ffb145f 100644 > --- a/tests/test-qmp-commands.c > +++ b/tests/test-qmp-commands.c > @@ -4,7 +4,7 @@ > #include "test-qmp-commands.h" > #include "qapi/qmp/dispatch.h" > #include "qemu/module.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "tests/test-qapi-types.h" > #include "tests/test-qapi-visit.h" > > @@ -229,7 +229,7 @@ static void test_dealloc_partial(void) > ud2_dict = qdict_new(); > qdict_put_obj(ud2_dict, "string0", QOBJECT(qstring_from_str(text))); > > - v = qmp_input_visitor_new(QOBJECT(ud2_dict), true); > + v = qobject_input_visitor_new(QOBJECT(ud2_dict), true); > visit_type_UserDefTwo(v, NULL, &ud2, &err); > visit_free(v); > QDECREF(ud2_dict); > diff --git a/tests/test-qmp-input-strict.c b/tests/test-qobject-input-strict.c > similarity index 99% > rename from tests/test-qmp-input-strict.c > rename to tests/test-qobject-input-strict.c > index 814550a..546f8af 100644 > --- a/tests/test-qmp-input-strict.c > +++ b/tests/test-qobject-input-strict.c > @@ -15,7 +15,7 @@ > > #include "qemu-common.h" > #include "qapi/error.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "test-qapi-types.h" > #include "test-qapi-visit.h" > #include "qapi/qmp/types.h" > @@ -53,7 +53,7 @@ static Visitor *validate_test_init_internal(TestInputVisitorData *data, > data->obj = qobject_from_jsonv(json_string, ap); > g_assert(data->obj); > > - data->qiv = qmp_input_visitor_new(data->obj, true); > + data->qiv = qobject_input_visitor_new(data->obj, true); > g_assert(data->qiv); > return data->qiv; > } > diff --git a/tests/test-qmp-input-visitor.c b/tests/test-qobject-input-visitor.c > similarity index 99% > rename from tests/test-qmp-input-visitor.c > rename to tests/test-qobject-input-visitor.c > index f583dce..02895f0 100644 > --- a/tests/test-qmp-input-visitor.c > +++ b/tests/test-qobject-input-visitor.c > @@ -14,7 +14,7 @@ > > #include "qemu-common.h" > #include "qapi/error.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "test-qapi-types.h" > #include "test-qapi-visit.h" > #include "qapi/qmp/types.h" > @@ -49,7 +49,7 @@ static Visitor *visitor_input_test_init_internal(TestInputVisitorData *data, > data->obj = qobject_from_jsonv(json_string, ap); > g_assert(data->obj); > > - data->qiv = qmp_input_visitor_new(data->obj, false); > + data->qiv = qobject_input_visitor_new(data->obj, false); > g_assert(data->qiv); > return data->qiv; > } > diff --git a/tests/test-string-input-visitor.c b/tests/test-string-input-visitor.c > index d837ebe..9bdcd74 100644 > --- a/tests/test-string-input-visitor.c > +++ b/tests/test-string-input-visitor.c > @@ -4,7 +4,7 @@ > * Copyright (C) 2012 Red Hat Inc. > * > * Authors: > - * Paolo Bonzini <pbonzini@redhat.com> (based on test-qmp-input-visitor) > + * Paolo Bonzini <pbonzini@redhat.com> (based on test-qobject-input-visitor) > * > * This work is licensed under the terms of the GNU GPL, version 2 or later. > * See the COPYING file in the top-level directory. > diff --git a/tests/test-visitor-serialization.c b/tests/test-visitor-serialization.c > index dba4670..51df428 100644 > --- a/tests/test-visitor-serialization.c > +++ b/tests/test-visitor-serialization.c > @@ -20,7 +20,7 @@ > #include "qapi/error.h" > #include "qapi/qmp/types.h" > #include "qapi/qmp/qjson.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "qapi/qmp-output-visitor.h" > #include "qapi/string-input-visitor.h" > #include "qapi/string-output-visitor.h" > @@ -1040,7 +1040,7 @@ static void qmp_deserialize(void **native_out, void *datap, > obj = qobject_from_json(qstring_get_str(output_json)); > > QDECREF(output_json); > - d->qiv = qmp_input_visitor_new(obj, true); > + d->qiv = qobject_input_visitor_new(obj, true); > qobject_decref(obj_orig); > qobject_decref(obj); > visit(d->qiv, native_out, errp); > diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c > index 2aed799..dd9ad44 100644 > --- a/util/qemu-sockets.c > +++ b/util/qemu-sockets.c > @@ -21,7 +21,7 @@ > #include "qapi/error.h" > #include "qemu/sockets.h" > #include "qemu/main-loop.h" > -#include "qapi/qmp-input-visitor.h" > +#include "qapi/qobject-input-visitor.h" > #include "qapi/qmp-output-visitor.h" > #include "qapi-visit.h" > #include "qemu/cutils.h" I guess we could simply live with the badly chosen name (and avoid the churn), but since you did the work already...
On Mon, Sep 12, 2016 at 06:19:08PM +0200, Markus Armbruster wrote: > "Daniel P. Berrange" <berrange@redhat.com> writes: > > > The QmpInputVisitor has no direct dependancy on QMP. It is > > valid to use it anywhere that one has a QObject. Rename it > > to better reflect its functionality as a generic QObject > > to QAPI convertor. > > > > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > > --- > > docs/qapi-code-gen.txt | 2 +- > > ...qmp-input-visitor.h => qobject-input-visitor.h} | 10 +- > > monitor.c | 2 +- > > qapi/Makefile.objs | 2 +- > > ...qmp-input-visitor.c => qobject-input-visitor.c} | 171 +++++++++++---------- > > qmp.c | 4 +- > > qom/qom-qobject.c | 4 +- > > scripts/qapi-commands.py | 4 +- > > tests/.gitignore | 4 +- > > tests/Makefile.include | 12 +- > > tests/check-qnull.c | 4 +- > > tests/test-qmp-commands.c | 4 +- > > ...-input-strict.c => test-qobject-input-strict.c} | 4 +- > > ...nput-visitor.c => test-qobject-input-visitor.c} | 4 +- > > tests/test-string-input-visitor.c | 2 +- > > tests/test-visitor-serialization.c | 4 +- > > util/qemu-sockets.c | 2 +- > > 17 files changed, 121 insertions(+), 118 deletions(-) > > rename include/qapi/{qmp-input-visitor.h => qobject-input-visitor.h} (63%) > > rename qapi/{qmp-input-visitor.c => qobject-input-visitor.c} (56%) > > rename tests/{test-qmp-input-strict.c => test-qobject-input-strict.c} (99%) > > rename tests/{test-qmp-input-visitor.c => test-qobject-input-visitor.c} (99%) > > $ git-grep -Ei 'qmp.?input.*?vis' > include/qapi/visitor.h: * the dealloc and QMP input/output visitors are general, the string, > target-s390x/cpu_models.c:#include "qapi/qmp-input-visitor.h" > target-s390x/cpu_models.c: visitor = qmp_input_visitor_new(info->props, true); > tests/test-qobject-input-strict.c: * QMP Input Visitor unit-tests (strict mode). > tests/test-qobject-input-visitor.c: * QMP Input Visitor unit-tests. Opps, yes will fix those. Regards, Daniel
diff --git a/docs/qapi-code-gen.txt b/docs/qapi-code-gen.txt index de298dc..a011872 100644 --- a/docs/qapi-code-gen.txt +++ b/docs/qapi-code-gen.txt @@ -1024,7 +1024,7 @@ Example: Visitor *v; UserDefOneList *arg1 = NULL; - v = qmp_input_visitor_new(QOBJECT(args), true); + v = qobject_input_visitor_new(QOBJECT(args), true); visit_start_struct(v, NULL, NULL, 0, &err); if (err) { goto out; diff --git a/include/qapi/qmp-input-visitor.h b/include/qapi/qobject-input-visitor.h similarity index 63% rename from include/qapi/qmp-input-visitor.h rename to include/qapi/qobject-input-visitor.h index f3ff5f3..cde328d 100644 --- a/include/qapi/qmp-input-visitor.h +++ b/include/qapi/qobject-input-visitor.h @@ -11,20 +11,20 @@ * */ -#ifndef QMP_INPUT_VISITOR_H -#define QMP_INPUT_VISITOR_H +#ifndef QOBJECT_INPUT_VISITOR_H +#define QOBJECT_INPUT_VISITOR_H #include "qapi/visitor.h" #include "qapi/qmp/qobject.h" -typedef struct QmpInputVisitor QmpInputVisitor; +typedef struct QObjectInputVisitor QObjectInputVisitor; /* - * Return a new input visitor that converts QMP to QAPI. + * Return a new input visitor that converts a QObject to a QAPI object. * * Set @strict to reject a parse that doesn't consume all keys of a * dictionary; otherwise excess input is ignored. */ -Visitor *qmp_input_visitor_new(QObject *obj, bool strict); +Visitor *qobject_input_visitor_new(QObject *obj, bool strict); #endif diff --git a/monitor.c b/monitor.c index 5c00373..b151934 100644 --- a/monitor.c +++ b/monitor.c @@ -998,7 +998,7 @@ EventInfoList *qmp_query_events(Error **errp) * directly into QObject instead of first parsing it with * visit_type_SchemaInfoList() into a SchemaInfoList, then marshal it * to QObject with generated output marshallers, every time. Instead, - * we do it in test-qmp-input-visitor.c, just to make sure + * we do it in test-qobject-input-visitor.c, just to make sure * qapi-introspect.py's output actually conforms to the schema. */ static void qmp_query_qmp_schema(QDict *qdict, QObject **ret_data, diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs index 7ea4aeb..6ec7bdc 100644 --- a/qapi/Makefile.objs +++ b/qapi/Makefile.objs @@ -1,4 +1,4 @@ -util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o +util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qobject-input-visitor.o util-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o util-obj-y += string-input-visitor.o string-output-visitor.o util-obj-y += opts-visitor.o qapi-clone-visitor.o diff --git a/qapi/qmp-input-visitor.c b/qapi/qobject-input-visitor.c similarity index 56% rename from qapi/qmp-input-visitor.c rename to qapi/qobject-input-visitor.c index 64dd392..5ff3db3 100644 --- a/qapi/qmp-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -14,7 +14,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/visitor-impl.h" #include "qemu/queue.h" #include "qemu-common.h" @@ -34,7 +34,7 @@ typedef struct StackObject QSLIST_ENTRY(StackObject) node; } StackObject; -struct QmpInputVisitor +struct QObjectInputVisitor { Visitor visitor; @@ -49,14 +49,14 @@ struct QmpInputVisitor bool strict; }; -static QmpInputVisitor *to_qiv(Visitor *v) +static QObjectInputVisitor *to_qiv(Visitor *v) { - return container_of(v, QmpInputVisitor, visitor); + return container_of(v, QObjectInputVisitor, visitor); } -static QObject *qmp_input_get_object(QmpInputVisitor *qiv, - const char *name, - bool consume) +static QObject *qobject_input_get_object(QObjectInputVisitor *qiv, + const char *name, + bool consume) { StackObject *tos; QObject *qobj; @@ -97,8 +97,9 @@ static void qdict_add_key(const char *key, QObject *obj, void *opaque) g_hash_table_insert(h, (gpointer) key, NULL); } -static const QListEntry *qmp_input_push(QmpInputVisitor *qiv, QObject *obj, - void *qapi, Error **errp) +static const QListEntry *qobject_input_push(QObjectInputVisitor *qiv, + QObject *obj, void *qapi, + Error **errp) { GHashTable *h; StackObject *tos = g_new0(StackObject, 1); @@ -120,9 +121,9 @@ static const QListEntry *qmp_input_push(QmpInputVisitor *qiv, QObject *obj, } -static void qmp_input_check_struct(Visitor *v, Error **errp) +static void qobject_input_check_struct(Visitor *v, Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); + QObjectInputVisitor *qiv = to_qiv(v); StackObject *tos = QSLIST_FIRST(&qiv->stack); assert(tos && !tos->entry); @@ -140,7 +141,7 @@ static void qmp_input_check_struct(Visitor *v, Error **errp) } } -static void qmp_input_stack_object_free(StackObject *tos) +static void qobject_input_stack_object_free(StackObject *tos) { if (tos->h) { g_hash_table_unref(tos->h); @@ -149,21 +150,21 @@ static void qmp_input_stack_object_free(StackObject *tos) g_free(tos); } -static void qmp_input_pop(Visitor *v, void **obj) +static void qobject_input_pop(Visitor *v, void **obj) { - QmpInputVisitor *qiv = to_qiv(v); + QObjectInputVisitor *qiv = to_qiv(v); StackObject *tos = QSLIST_FIRST(&qiv->stack); assert(tos && tos->qapi == obj); QSLIST_REMOVE_HEAD(&qiv->stack, node); - qmp_input_stack_object_free(tos); + qobject_input_stack_object_free(tos); } -static void qmp_input_start_struct(Visitor *v, const char *name, void **obj, - size_t size, Error **errp) +static void qobject_input_start_struct(Visitor *v, const char *name, void **obj, + size_t size, Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, true); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, true); Error *err = NULL; if (obj) { @@ -175,7 +176,7 @@ static void qmp_input_start_struct(Visitor *v, const char *name, void **obj, return; } - qmp_input_push(qiv, qobj, obj, &err); + qobject_input_push(qiv, qobj, obj, &err); if (err) { error_propagate(errp, err); return; @@ -187,11 +188,12 @@ static void qmp_input_start_struct(Visitor *v, const char *name, void **obj, } -static void qmp_input_start_list(Visitor *v, const char *name, - GenericList **list, size_t size, Error **errp) +static void qobject_input_start_list(Visitor *v, const char *name, + GenericList **list, size_t size, + Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, true); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, true); const QListEntry *entry; if (!qobj || qobject_type(qobj) != QTYPE_QLIST) { @@ -203,7 +205,7 @@ static void qmp_input_start_list(Visitor *v, const char *name, return; } - entry = qmp_input_push(qiv, qobj, list, errp); + entry = qobject_input_push(qiv, qobj, list, errp); if (list) { if (entry) { *list = g_malloc0(size); @@ -213,10 +215,10 @@ static void qmp_input_start_list(Visitor *v, const char *name, } } -static GenericList *qmp_input_next_list(Visitor *v, GenericList *tail, - size_t size) +static GenericList *qobject_input_next_list(Visitor *v, GenericList *tail, + size_t size) { - QmpInputVisitor *qiv = to_qiv(v); + QObjectInputVisitor *qiv = to_qiv(v); StackObject *so = QSLIST_FIRST(&qiv->stack); if (!so->entry) { @@ -227,12 +229,12 @@ static GenericList *qmp_input_next_list(Visitor *v, GenericList *tail, } -static void qmp_input_start_alternate(Visitor *v, const char *name, - GenericAlternate **obj, size_t size, - bool promote_int, Error **errp) +static void qobject_input_start_alternate(Visitor *v, const char *name, + GenericAlternate **obj, size_t size, + bool promote_int, Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, false); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, false); if (!qobj) { *obj = NULL; @@ -246,11 +248,11 @@ static void qmp_input_start_alternate(Visitor *v, const char *name, } } -static void qmp_input_type_int64(Visitor *v, const char *name, int64_t *obj, - Error **errp) +static void qobject_input_type_int64(Visitor *v, const char *name, int64_t *obj, + Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QInt *qint = qobject_to_qint(qmp_input_get_object(qiv, name, true)); + QObjectInputVisitor *qiv = to_qiv(v); + QInt *qint = qobject_to_qint(qobject_input_get_object(qiv, name, true)); if (!qint) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", @@ -261,12 +263,12 @@ static void qmp_input_type_int64(Visitor *v, const char *name, int64_t *obj, *obj = qint_get_int(qint); } -static void qmp_input_type_uint64(Visitor *v, const char *name, uint64_t *obj, - Error **errp) +static void qobject_input_type_uint64(Visitor *v, const char *name, + uint64_t *obj, Error **errp) { /* FIXME: qobject_to_qint mishandles values over INT64_MAX */ - QmpInputVisitor *qiv = to_qiv(v); - QInt *qint = qobject_to_qint(qmp_input_get_object(qiv, name, true)); + QObjectInputVisitor *qiv = to_qiv(v); + QInt *qint = qobject_to_qint(qobject_input_get_object(qiv, name, true)); if (!qint) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", @@ -277,11 +279,11 @@ static void qmp_input_type_uint64(Visitor *v, const char *name, uint64_t *obj, *obj = qint_get_int(qint); } -static void qmp_input_type_bool(Visitor *v, const char *name, bool *obj, - Error **errp) +static void qobject_input_type_bool(Visitor *v, const char *name, bool *obj, + Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QBool *qbool = qobject_to_qbool(qmp_input_get_object(qiv, name, true)); + QObjectInputVisitor *qiv = to_qiv(v); + QBool *qbool = qobject_to_qbool(qobject_input_get_object(qiv, name, true)); if (!qbool) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", @@ -292,11 +294,12 @@ static void qmp_input_type_bool(Visitor *v, const char *name, bool *obj, *obj = qbool_get_bool(qbool); } -static void qmp_input_type_str(Visitor *v, const char *name, char **obj, - Error **errp) +static void qobject_input_type_str(Visitor *v, const char *name, char **obj, + Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QString *qstr = qobject_to_qstring(qmp_input_get_object(qiv, name, true)); + QObjectInputVisitor *qiv = to_qiv(v); + QString *qstr = qobject_to_qstring(qobject_input_get_object(qiv, name, + true)); if (!qstr) { *obj = NULL; @@ -308,11 +311,11 @@ static void qmp_input_type_str(Visitor *v, const char *name, char **obj, *obj = g_strdup(qstring_get_str(qstr)); } -static void qmp_input_type_number(Visitor *v, const char *name, double *obj, - Error **errp) +static void qobject_input_type_number(Visitor *v, const char *name, double *obj, + Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, true); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, true); QInt *qint; QFloat *qfloat; @@ -332,20 +335,20 @@ static void qmp_input_type_number(Visitor *v, const char *name, double *obj, "number"); } -static void qmp_input_type_any(Visitor *v, const char *name, QObject **obj, - Error **errp) +static void qobject_input_type_any(Visitor *v, const char *name, QObject **obj, + Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, true); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, true); qobject_incref(qobj); *obj = qobj; } -static void qmp_input_type_null(Visitor *v, const char *name, Error **errp) +static void qobject_input_type_null(Visitor *v, const char *name, Error **errp) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, true); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, true); if (qobject_type(qobj) != QTYPE_QNULL) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", @@ -353,10 +356,10 @@ static void qmp_input_type_null(Visitor *v, const char *name, Error **errp) } } -static void qmp_input_optional(Visitor *v, const char *name, bool *present) +static void qobject_input_optional(Visitor *v, const char *name, bool *present) { - QmpInputVisitor *qiv = to_qiv(v); - QObject *qobj = qmp_input_get_object(qiv, name, false); + QObjectInputVisitor *qiv = to_qiv(v); + QObject *qobj = qobject_input_get_object(qiv, name, false); if (!qobj) { *present = false; @@ -366,43 +369,43 @@ static void qmp_input_optional(Visitor *v, const char *name, bool *present) *present = true; } -static void qmp_input_free(Visitor *v) +static void qobject_input_free(Visitor *v) { - QmpInputVisitor *qiv = to_qiv(v); + QObjectInputVisitor *qiv = to_qiv(v); while (!QSLIST_EMPTY(&qiv->stack)) { StackObject *tos = QSLIST_FIRST(&qiv->stack); QSLIST_REMOVE_HEAD(&qiv->stack, node); - qmp_input_stack_object_free(tos); + qobject_input_stack_object_free(tos); } qobject_decref(qiv->root); g_free(qiv); } -Visitor *qmp_input_visitor_new(QObject *obj, bool strict) +Visitor *qobject_input_visitor_new(QObject *obj, bool strict) { - QmpInputVisitor *v; + QObjectInputVisitor *v; v = g_malloc0(sizeof(*v)); v->visitor.type = VISITOR_INPUT; - v->visitor.start_struct = qmp_input_start_struct; - v->visitor.check_struct = qmp_input_check_struct; - v->visitor.end_struct = qmp_input_pop; - v->visitor.start_list = qmp_input_start_list; - v->visitor.next_list = qmp_input_next_list; - v->visitor.end_list = qmp_input_pop; - v->visitor.start_alternate = qmp_input_start_alternate; - v->visitor.type_int64 = qmp_input_type_int64; - v->visitor.type_uint64 = qmp_input_type_uint64; - v->visitor.type_bool = qmp_input_type_bool; - v->visitor.type_str = qmp_input_type_str; - v->visitor.type_number = qmp_input_type_number; - v->visitor.type_any = qmp_input_type_any; - v->visitor.type_null = qmp_input_type_null; - v->visitor.optional = qmp_input_optional; - v->visitor.free = qmp_input_free; + v->visitor.start_struct = qobject_input_start_struct; + v->visitor.check_struct = qobject_input_check_struct; + v->visitor.end_struct = qobject_input_pop; + v->visitor.start_list = qobject_input_start_list; + v->visitor.next_list = qobject_input_next_list; + v->visitor.end_list = qobject_input_pop; + v->visitor.start_alternate = qobject_input_start_alternate; + v->visitor.type_int64 = qobject_input_type_int64; + v->visitor.type_uint64 = qobject_input_type_uint64; + v->visitor.type_bool = qobject_input_type_bool; + v->visitor.type_str = qobject_input_type_str; + v->visitor.type_number = qobject_input_type_number; + v->visitor.type_any = qobject_input_type_any; + v->visitor.type_null = qobject_input_type_null; + v->visitor.optional = qobject_input_optional; + v->visitor.free = qobject_input_free; v->strict = strict; v->root = obj; diff --git a/qmp.c b/qmp.c index b6d531e..ffc8828 100644 --- a/qmp.c +++ b/qmp.c @@ -30,7 +30,7 @@ #include "qom/qom-qobject.h" #include "qapi/qmp/qerror.h" #include "qapi/qmp/qobject.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "hw/boards.h" #include "qom/object_interfaces.h" #include "hw/mem/pc-dimm.h" @@ -666,7 +666,7 @@ void qmp_object_add(const char *type, const char *id, } } - v = qmp_input_visitor_new(props, true); + v = qobject_input_visitor_new(props, true); obj = user_creatable_add_type(type, id, pdict, v, errp); visit_free(v); if (obj) { diff --git a/qom/qom-qobject.c b/qom/qom-qobject.c index c225abc..81959e0 100644 --- a/qom/qom-qobject.c +++ b/qom/qom-qobject.c @@ -15,7 +15,7 @@ #include "qom/object.h" #include "qom/qom-qobject.h" #include "qapi/visitor.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/qmp-output-visitor.h" void object_property_set_qobject(Object *obj, QObject *value, @@ -23,7 +23,7 @@ void object_property_set_qobject(Object *obj, QObject *value, { Visitor *v; /* TODO: Should we reject, rather than ignore, excess input? */ - v = qmp_input_visitor_new(value, false); + v = qobject_input_visitor_new(value, false); object_property_set(obj, v, name, errp); visit_free(v); } diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py index a06a2c4..3010163 100644 --- a/scripts/qapi-commands.py +++ b/scripts/qapi-commands.py @@ -117,7 +117,7 @@ def gen_marshal(name, arg_type, boxed, ret_type): Visitor *v; %(c_name)s arg = {0}; - v = qmp_input_visitor_new(QOBJECT(args), true); + v = qobject_input_visitor_new(QOBJECT(args), true); visit_start_struct(v, NULL, NULL, 0, &err); if (err) { goto out; @@ -279,7 +279,7 @@ fdef.write(mcgen(''' #include "qapi/qmp/dispatch.h" #include "qapi/visitor.h" #include "qapi/qmp-output-visitor.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/dealloc-visitor.h" #include "%(prefix)sqapi-types.h" #include "%(prefix)sqapi-visit.h" diff --git a/tests/.gitignore b/tests/.gitignore index dbb5263..4ec0a1a 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -57,8 +57,8 @@ test-qht-par test-qmp-commands test-qmp-commands.h test-qmp-event -test-qmp-input-strict -test-qmp-input-visitor +test-qobject-input-strict +test-qobject-input-visitor test-qmp-introspect.[ch] test-qmp-marshal.c test-qmp-output-visitor diff --git a/tests/Makefile.include b/tests/Makefile.include index 14be491..5ac61b7 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -24,9 +24,9 @@ check-unit-y += tests/test-qmp-output-visitor$(EXESUF) gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c check-unit-y += tests/test-clone-visitor$(EXESUF) gcov-files-test-clone-visitor-y = qapi/qapi-clone-visitor.c -check-unit-y += tests/test-qmp-input-visitor$(EXESUF) -gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c -check-unit-y += tests/test-qmp-input-strict$(EXESUF) +check-unit-y += tests/test-qobject-input-visitor$(EXESUF) +gcov-files-test-qobject-input-visitor-y = qapi/qobject-input-visitor.c +check-unit-y += tests/test-qobject-input-strict$(EXESUF) check-unit-y += tests/test-qmp-commands$(EXESUF) gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c check-unit-y += tests/test-string-input-visitor$(EXESUF) @@ -415,7 +415,7 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ tests/test-coroutine.o tests/test-string-output-visitor.o \ tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \ tests/test-clone-visitor.o \ - tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \ + tests/test-qobject-input-visitor.o tests/test-qobject-input-strict.o \ tests/test-qmp-commands.o tests/test-visitor-serialization.o \ tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \ tests/test-opts-visitor.o tests/test-qmp-event.o \ @@ -514,8 +514,8 @@ tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(te tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y) -tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) +tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y) +tests/test-qobject-input-strict$(EXESUF): tests/test-qobject-input-strict.o $(test-qapi-obj-y) tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y) diff --git a/tests/check-qnull.c b/tests/check-qnull.c index dc906b1..eeb803a 100644 --- a/tests/check-qnull.c +++ b/tests/check-qnull.c @@ -10,7 +10,7 @@ #include "qapi/qmp/qobject.h" #include "qemu-common.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/qmp-output-visitor.h" #include "qapi/error.h" @@ -47,7 +47,7 @@ static void qnull_visit_test(void) g_assert(qnull_.refcnt == 1); obj = qnull(); - v = qmp_input_visitor_new(obj, true); + v = qobject_input_visitor_new(obj, true); qobject_decref(obj); visit_type_null(v, NULL, &error_abort); visit_free(v); diff --git a/tests/test-qmp-commands.c b/tests/test-qmp-commands.c index 261fd9e..ffb145f 100644 --- a/tests/test-qmp-commands.c +++ b/tests/test-qmp-commands.c @@ -4,7 +4,7 @@ #include "test-qmp-commands.h" #include "qapi/qmp/dispatch.h" #include "qemu/module.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "tests/test-qapi-types.h" #include "tests/test-qapi-visit.h" @@ -229,7 +229,7 @@ static void test_dealloc_partial(void) ud2_dict = qdict_new(); qdict_put_obj(ud2_dict, "string0", QOBJECT(qstring_from_str(text))); - v = qmp_input_visitor_new(QOBJECT(ud2_dict), true); + v = qobject_input_visitor_new(QOBJECT(ud2_dict), true); visit_type_UserDefTwo(v, NULL, &ud2, &err); visit_free(v); QDECREF(ud2_dict); diff --git a/tests/test-qmp-input-strict.c b/tests/test-qobject-input-strict.c similarity index 99% rename from tests/test-qmp-input-strict.c rename to tests/test-qobject-input-strict.c index 814550a..546f8af 100644 --- a/tests/test-qmp-input-strict.c +++ b/tests/test-qobject-input-strict.c @@ -15,7 +15,7 @@ #include "qemu-common.h" #include "qapi/error.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "test-qapi-types.h" #include "test-qapi-visit.h" #include "qapi/qmp/types.h" @@ -53,7 +53,7 @@ static Visitor *validate_test_init_internal(TestInputVisitorData *data, data->obj = qobject_from_jsonv(json_string, ap); g_assert(data->obj); - data->qiv = qmp_input_visitor_new(data->obj, true); + data->qiv = qobject_input_visitor_new(data->obj, true); g_assert(data->qiv); return data->qiv; } diff --git a/tests/test-qmp-input-visitor.c b/tests/test-qobject-input-visitor.c similarity index 99% rename from tests/test-qmp-input-visitor.c rename to tests/test-qobject-input-visitor.c index f583dce..02895f0 100644 --- a/tests/test-qmp-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -14,7 +14,7 @@ #include "qemu-common.h" #include "qapi/error.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "test-qapi-types.h" #include "test-qapi-visit.h" #include "qapi/qmp/types.h" @@ -49,7 +49,7 @@ static Visitor *visitor_input_test_init_internal(TestInputVisitorData *data, data->obj = qobject_from_jsonv(json_string, ap); g_assert(data->obj); - data->qiv = qmp_input_visitor_new(data->obj, false); + data->qiv = qobject_input_visitor_new(data->obj, false); g_assert(data->qiv); return data->qiv; } diff --git a/tests/test-string-input-visitor.c b/tests/test-string-input-visitor.c index d837ebe..9bdcd74 100644 --- a/tests/test-string-input-visitor.c +++ b/tests/test-string-input-visitor.c @@ -4,7 +4,7 @@ * Copyright (C) 2012 Red Hat Inc. * * Authors: - * Paolo Bonzini <pbonzini@redhat.com> (based on test-qmp-input-visitor) + * Paolo Bonzini <pbonzini@redhat.com> (based on test-qobject-input-visitor) * * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. diff --git a/tests/test-visitor-serialization.c b/tests/test-visitor-serialization.c index dba4670..51df428 100644 --- a/tests/test-visitor-serialization.c +++ b/tests/test-visitor-serialization.c @@ -20,7 +20,7 @@ #include "qapi/error.h" #include "qapi/qmp/types.h" #include "qapi/qmp/qjson.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/qmp-output-visitor.h" #include "qapi/string-input-visitor.h" #include "qapi/string-output-visitor.h" @@ -1040,7 +1040,7 @@ static void qmp_deserialize(void **native_out, void *datap, obj = qobject_from_json(qstring_get_str(output_json)); QDECREF(output_json); - d->qiv = qmp_input_visitor_new(obj, true); + d->qiv = qobject_input_visitor_new(obj, true); qobject_decref(obj_orig); qobject_decref(obj); visit(d->qiv, native_out, errp); diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 2aed799..dd9ad44 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -21,7 +21,7 @@ #include "qapi/error.h" #include "qemu/sockets.h" #include "qemu/main-loop.h" -#include "qapi/qmp-input-visitor.h" +#include "qapi/qobject-input-visitor.h" #include "qapi/qmp-output-visitor.h" #include "qapi-visit.h" #include "qemu/cutils.h"
The QmpInputVisitor has no direct dependancy on QMP. It is valid to use it anywhere that one has a QObject. Rename it to better reflect its functionality as a generic QObject to QAPI convertor. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- docs/qapi-code-gen.txt | 2 +- ...qmp-input-visitor.h => qobject-input-visitor.h} | 10 +- monitor.c | 2 +- qapi/Makefile.objs | 2 +- ...qmp-input-visitor.c => qobject-input-visitor.c} | 171 +++++++++++---------- qmp.c | 4 +- qom/qom-qobject.c | 4 +- scripts/qapi-commands.py | 4 +- tests/.gitignore | 4 +- tests/Makefile.include | 12 +- tests/check-qnull.c | 4 +- tests/test-qmp-commands.c | 4 +- ...-input-strict.c => test-qobject-input-strict.c} | 4 +- ...nput-visitor.c => test-qobject-input-visitor.c} | 4 +- tests/test-string-input-visitor.c | 2 +- tests/test-visitor-serialization.c | 4 +- util/qemu-sockets.c | 2 +- 17 files changed, 121 insertions(+), 118 deletions(-) rename include/qapi/{qmp-input-visitor.h => qobject-input-visitor.h} (63%) rename qapi/{qmp-input-visitor.c => qobject-input-visitor.c} (56%) rename tests/{test-qmp-input-strict.c => test-qobject-input-strict.c} (99%) rename tests/{test-qmp-input-visitor.c => test-qobject-input-visitor.c} (99%)