[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: [PATCH 3/8] Add QBuffer
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] Re: [PATCH 3/8] Add QBuffer |
Date: |
Tue, 18 May 2010 14:28:15 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Anthony Liguori <address@hidden> writes:
> On 05/17/2010 02:45 AM, Avi Kivity wrote:
>> On 05/17/2010 10:40 AM, Jan Kiszka wrote:
>>>
>>>> The alternative is to have a schema. Sun RPC/XDR doesn't carry
>>>> any type
>>>> information (you can't even distinguish between a number and text)
>>>> yet C
>>>> clients have to problem extracting typed information from it.
>>>>
>>>> Having __class__ everywhere means we're carrying the schema in every
>>>> message instead of just once.
>>> The device_show command is already an example where you don't have a
>>> predefined schema. It is derived from the data stream the encodes the
>>> vmstate fields. So far we have no collision between base64-encoded
>>> buffers and real strings, but this may actually change when we start
>>> annotating the fields with symbolic constants.
>>
>> What is the receiver to do with it?
>>
>> If it doesn't know the schema (and there is no schema), then all it
>> can do is display the key/values. If it does know the schema, then
>> __class__ is unnecessary.
>>
>> My worry is that __class__ will make the protocol more ad-hoc.
>>
>>> I really don't see the problem with __class__. Being a text protocol,
>>> JSON is already fairly verbose.
>>
>> The problem is not the verbosity, it's that information is carried
>> too late. Many clients want to know this information at compile
>> time or initialization time, and we are providing it at object
>> instantiating time.
>
> Whether a protocol is self-describing is orthogonal to whether it's
> well defined (ala a schema). A self-describing protocol is very
> convenient for dynamic languages like Python. We should also provide
> a formal schema though for languages that require IDL to generate
> bindings (like C).
And that schema should be available over QMP.
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, (continued)
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Jan Kiszka, 2010/05/17
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Avi Kivity, 2010/05/17
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Avi Kivity, 2010/05/17
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Jan Kiszka, 2010/05/17
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Avi Kivity, 2010/05/17
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Jan Kiszka, 2010/05/17
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Avi Kivity, 2010/05/17
- Re: [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Markus Armbruster, 2010/05/18
- Re: [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Avi Kivity, 2010/05/18
- [Qemu-devel] Re: [PATCH 3/8] Add QBuffer, Anthony Liguori, 2010/05/17
- Re: [Qemu-devel] Re: [PATCH 3/8] Add QBuffer,
Markus Armbruster <=
[Qemu-devel] Re: [PATCH 0/8] Basic device state visualization, Avi Kivity, 2010/05/14
Re: [Qemu-devel] [PATCH 0/8] Basic device state visualization, Anthony Liguori, 2010/05/14
Re: [Qemu-devel] [PATCH 0/8] Basic device state visualization, Blue Swirl, 2010/05/14