|
|
(133 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| = Monitor Protocol = | | = PAGE MOVED!! = |
|
| |
|
| This is the page of the Monitor Protocol project, which aims to implement a [http://www.json.org JSON] based protocol for QEMU. | | This page has moved to: http://wiki.qemu.org/QMP |
| | |
| == Problem ==
| |
| | |
| QEMU does not provide a way for applications to control it at the "machine level", that is, the current existing interface (called Monitor) was designed for human interaction only.
| |
| | |
| This is very problematic for applications, for the following reasons:
| |
| | |
| * It is needed to parse output meant to be read by humans
| |
| * It is not reliable, because it is not always possible to know whether a command has been successfully executed or not
| |
| * It lacks support for asynchronous events
| |
| | |
| == Solution ==
| |
| | |
| Improve QEMU's Monitor to support a JSON based protocol.
| |
| | |
| == Project status (2009-10-20) ==
| |
| | |
| Most of the infrastructure has been merged, JSON encoder/decoder should be merged in the next days. The only important missing part is error handling.
| |
| | |
| Some conversions are taking place in parallel, but some depend on not merged work.
| |
| | |
| === Main building blocks ===
| |
| | |
| * QObject Layer ('''merged''')
| |
| * QObject Monitor infrastructure ('''merged''')
| |
| * JSON encoder/decoder ('''under review''')
| |
| * Error handling ('''under discussion''')
| |
| | |
| === Command handlers Conversion work ===
| |
| | |
| * Input through QDict ('''merged''')
| |
| * Output in QObject style ('''in progress''')
| |
| * Error handling ('''not started''')
| |