2015-08-21 07:04:50 +00:00
|
|
|
/*
|
|
|
|
* Input Visitor
|
|
|
|
*
|
|
|
|
* Copyright IBM, Corp. 2011
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* Anthony Liguori <aliguori@us.ibm.com>
|
|
|
|
*
|
|
|
|
* This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
|
|
|
* See the COPYING.LIB file in the top-level directory.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef QMP_INPUT_VISITOR_H
|
|
|
|
#define QMP_INPUT_VISITOR_H
|
|
|
|
|
|
|
|
#include "qapi/visitor.h"
|
|
|
|
#include "qapi/qmp/qobject.h"
|
|
|
|
|
|
|
|
typedef struct QmpInputVisitor QmpInputVisitor;
|
|
|
|
|
2018-02-23 20:09:51 +00:00
|
|
|
/*
|
|
|
|
* Return a new input visitor that converts QMP to QAPI.
|
|
|
|
*
|
|
|
|
* Set @strict to reject a parse that doesn't consume all keys of a
|
|
|
|
* dictionary; otherwise excess input is ignored.
|
|
|
|
*/
|
qmp-input-visitor: Favor new visit_free() function
Now that we have a polymorphic visit_free(), we no longer need
qmp_input_visitor_cleanup(); which in turn means we no longer
need to return a subtype from qmp_input_visitor_new() nor a
public upcast function.
Generated code changes to qmp-marshal.c look like:
|@@ -52,11 +52,10 @@ void qmp_marshal_add_fd(QDict *args, QOb
| {
| Error *err = NULL;
| AddfdInfo *retval;
|- QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true);
| Visitor *v;
| q_obj_add_fd_arg arg = {0};
|
|- v = qmp_input_get_visitor(qiv);
|+ v = qmp_input_visitor_new(QOBJECT(args), true);
| visit_start_struct(v, NULL, NULL, 0, &err);
| if (err) {
| goto out;
Backports commit b70ce1018a251c0c33498d9c927a07cade655a5e from qemu
2018-02-25 06:09:42 +00:00
|
|
|
Visitor *qmp_input_visitor_new(QObject *obj, bool strict);
|
2015-08-21 07:04:50 +00:00
|
|
|
|
|
|
|
#endif
|