[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/11] QMP: Array-based async messages
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 06/11] QMP: Array-based async messages |
Date: |
Thu, 21 Jan 2010 19:09:35 -0200 |
This commit moves the asynchronous messages names to an array
of structs, so that it can be indexed and searched.
Signed-off-by: Luiz Capitulino <address@hidden>
---
monitor.c | 67 +++++++++++++++++++++++++++++++------------------------------
1 files changed, 34 insertions(+), 33 deletions(-)
diff --git a/monitor.c b/monitor.c
index 70a59c7..61c0273 100644
--- a/monitor.c
+++ b/monitor.c
@@ -336,6 +336,38 @@ static void timestamp_put(QDict *qdict)
qdict_put_obj(qdict, "timestamp", obj);
}
+typedef struct MonitorEventName {
+ const char *name;
+} MonitorEventName;
+
+static const MonitorEventName monitor_events_names[] = {
+ [QEVENT_DEBUG] = {
+ .name = "DEBUG",
+ },
+ [QEVENT_SHUTDOWN] = {
+ .name = "SHUTDOWN",
+ },
+ [QEVENT_RESET] = {
+ .name = "RESET",
+ },
+ [QEVENT_POWERDOWN] = {
+ .name = "POWERDOWN",
+ },
+ [QEVENT_STOP] = {
+ .name = "STOP",
+ },
+ [QEVENT_VNC_CONNECTED] = {
+ .name = "VNC_CONNECTED",
+ },
+ [QEVENT_VNC_INITIALIZED] = {
+ .name = "VNC_INITIALIZED",
+ },
+ [QEVENT_VNC_DISCONNECTED] = {
+ .name = "VNC_DISCONNECTED",
+ },
+ { },
+};
+
/**
* monitor_protocol_event(): Generate a Monitor event
*
@@ -344,44 +376,13 @@ static void timestamp_put(QDict *qdict)
void monitor_protocol_event(MonitorEvent event, QObject *data)
{
QDict *qmp;
- const char *event_name;
Monitor *mon;
- assert(event < QEVENT_MAX);
-
- switch (event) {
- case QEVENT_DEBUG:
- event_name = "DEBUG";
- break;
- case QEVENT_SHUTDOWN:
- event_name = "SHUTDOWN";
- break;
- case QEVENT_RESET:
- event_name = "RESET";
- break;
- case QEVENT_POWERDOWN:
- event_name = "POWERDOWN";
- break;
- case QEVENT_STOP:
- event_name = "STOP";
- break;
- case QEVENT_VNC_CONNECTED:
- event_name = "VNC_CONNECTED";
- break;
- case QEVENT_VNC_INITIALIZED:
- event_name = "VNC_INITIALIZED";
- break;
- case QEVENT_VNC_DISCONNECTED:
- event_name = "VNC_DISCONNECTED";
- break;
- default:
- abort();
- break;
- }
+ assert(event >= 0 && event < QEVENT_MAX);
qmp = qdict_new();
timestamp_put(qmp);
- qdict_put(qmp, "event", qstring_from_str(event_name));
+ qdict_put(qmp, "event",
qstring_from_str(monitor_events_names[event].name));
if (data) {
qobject_incref(data);
qdict_put_obj(qmp, "data", data);
--
1.6.6
- [Qemu-devel] [RFC 00/11]: QMP feature negotiation support, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 01/11] QMP: Initial mode-oriented bits, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 02/11] QMP: Introduce 'query-qmp-mode' command, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 03/11] QError: Add QMP mode-oriented errors, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 04/11] QMP: Introduce qmp_switch_mode command, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 05/11] QMP: advertise asynchronous messages, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 06/11] QMP: Array-based async messages,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 07/11] QError: New QERR_ASYNC_MSG_NOT_FOUND, Luiz Capitulino, 2010/01/21
- [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Luiz Capitulino, 2010/01/21
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Anthony Liguori, 2010/01/22
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Luiz Capitulino, 2010/01/22
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Anthony Liguori, 2010/01/22
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Markus Armbruster, 2010/01/25
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Avi Kivity, 2010/01/25
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Luiz Capitulino, 2010/01/25
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Avi Kivity, 2010/01/24
- Re: [Qemu-devel] [PATCH 08/11] QMP: Asynchronous messages enable/disable support, Jamie Lokier, 2010/01/24