[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 15/15] QMP: Add support for buffer class to qmp p
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH v2 15/15] QMP: Add support for buffer class to qmp python helper |
Date: |
Sat, 22 May 2010 10:18:12 +0200 |
From: Jan Kiszka <address@hidden>
This demonstrates the conversion of QMP buffer objects and does some
minimalistic pretty-printing.
Signed-off-by: Jan Kiszka <address@hidden>
---
QMP/qmp.py | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/QMP/qmp.py b/QMP/qmp.py
index 4062f84..67ca8b9 100644
--- a/QMP/qmp.py
+++ b/QMP/qmp.py
@@ -8,7 +8,7 @@
# This work is licensed under the terms of the GNU GPL, version 2. See
# the COPYING file in the top-level directory.
-import socket, json
+import socket, json, binascii
class QMPError(Exception):
pass
@@ -16,6 +16,18 @@ class QMPError(Exception):
class QMPConnectError(QMPError):
pass
+class QMPBuffer:
+ def __init__(self, data):
+ self.data = binascii.a2b_base64(data)
+
+ def __repr__(self):
+ str = ''
+ for i in range(0, len(self.data) - 1):
+ if i > 0:
+ str += ' '
+ str += binascii.b2a_hex(self.data[i])
+ return str
+
class QEMUMonitorProtocol:
def connect(self):
self.sock.connect(self.filename)
@@ -61,10 +73,19 @@ class QEMUMonitorProtocol:
# the Server won't read our input
self.sock.send(json.dumps(cmd) + ' ')
+ def __json_obj_hook(self, dct):
+ if '__class__' in dct:
+ if dct['__class__'] == 'buffer':
+ return QMPBuffer(dct['data'])
+ else:
+ return
+ return dct
+
def __json_read(self):
try:
while True:
- line = json.loads(self.sockfile.readline())
+ line = json.loads(self.sockfile.readline(),
+ object_hook=self.__json_obj_hook)
if not 'event' in line:
return line
except ValueError:
--
1.6.0.2
- Re: [Qemu-devel] [PATCH v2 08/15] Add base64 encoder/decoder, (continued)
[Qemu-devel] [PATCH v2 04/15] qdev: Convert device and bus lists to QTAILQ, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 05/15] qdev: Allow device specification by qtree path for device_del, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 07/15] monitor: Add completion for qdev paths, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 11/15] monitor: return length of printed string via monitor_[v]printf, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 09/15] QMP: Reserve namespace for complex object classes, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 10/15] Add QBuffer, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 15/15] QMP: Add support for buffer class to qmp python helper,
Jan Kiszka <=
[Qemu-devel] [PATCH v2 12/15] monitor: Add basic device state visualization, Jan Kiszka, 2010/05/22
- [Qemu-devel] Re: [PATCH v2 12/15] monitor: Add basic device state visualization, Avi Kivity, 2010/05/22
- Re: [Qemu-devel] Re: [PATCH v2 12/15] monitor: Add basic device state visualization, Markus Armbruster, 2010/05/29
- Re: [Qemu-devel] Re: [PATCH v2 12/15] monitor: Add basic device state visualization, Jan Kiszka, 2010/05/29
- Re: [Qemu-devel] Re: [PATCH v2 12/15] monitor: Add basic device state visualization, Avi Kivity, 2010/05/30
- Re: [Qemu-devel] Re: [PATCH v2 12/15] monitor: Add basic device state visualization, Jan Kiszka, 2010/05/30