提交 b5c30586 编写于 作者: L Luiz Capitulino

Monitor: do_info(): Drop QMP command handling code

Previous commits converted all existing QMP commands to the QAPI,
now each info command does its own QMP call.

Let's then drop all QMP command handling code from do_info().
Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
上级 40e5a01d
...@@ -123,8 +123,6 @@ typedef struct mon_cmd_t { ...@@ -123,8 +123,6 @@ typedef struct mon_cmd_t {
void (*user_print)(Monitor *mon, const QObject *data); void (*user_print)(Monitor *mon, const QObject *data);
union { union {
void (*info)(Monitor *mon); void (*info)(Monitor *mon);
void (*info_new)(Monitor *mon, QObject **ret_data);
int (*info_async)(Monitor *mon, MonitorCompletion *cb, void *opaque);
void (*cmd)(Monitor *mon, const QDict *qdict); void (*cmd)(Monitor *mon, const QDict *qdict);
int (*cmd_new)(Monitor *mon, const QDict *params, QObject **ret_data); int (*cmd_new)(Monitor *mon, const QDict *params, QObject **ret_data);
int (*cmd_async)(Monitor *mon, const QDict *params, int (*cmd_async)(Monitor *mon, const QDict *params,
...@@ -679,21 +677,6 @@ static void user_async_cmd_handler(Monitor *mon, const mon_cmd_t *cmd, ...@@ -679,21 +677,6 @@ static void user_async_cmd_handler(Monitor *mon, const mon_cmd_t *cmd,
} }
} }
static void user_async_info_handler(Monitor *mon, const mon_cmd_t *cmd)
{
int ret;
MonitorCompletionData *cb_data = g_malloc(sizeof(*cb_data));
cb_data->mon = mon;
cb_data->user_print = cmd->user_print;
monitor_suspend(mon);
ret = cmd->mhandler.info_async(mon, user_monitor_complete, cb_data);
if (ret < 0) {
monitor_resume(mon);
g_free(cb_data);
}
}
static void do_info(Monitor *mon, const QDict *qdict) static void do_info(Monitor *mon, const QDict *qdict)
{ {
const mon_cmd_t *cmd; const mon_cmd_t *cmd;
...@@ -712,20 +695,7 @@ static void do_info(Monitor *mon, const QDict *qdict) ...@@ -712,20 +695,7 @@ static void do_info(Monitor *mon, const QDict *qdict)
goto help; goto help;
} }
if (handler_is_async(cmd)) { cmd->mhandler.info(mon);
user_async_info_handler(mon, cmd);
} else if (handler_is_qobject(cmd)) {
QObject *info_data = NULL;
cmd->mhandler.info_new(mon, &info_data);
if (info_data) {
cmd->user_print(mon, info_data);
qobject_decref(info_data);
}
} else {
cmd->mhandler.info(mon);
}
return; return;
help: help:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册