From: "Daniel P. Berrange" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
kwolf@redhat.com, qemu-devel@nongnu.org, arei.gonglei@huawei.com,
pbonzini@redhat.com, lcapitulino@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v2] qom: Implement qom-get HMP command
Date: Fri, 9 Sep 2016 18:33:40 +0100 [thread overview]
Message-ID: <20160909173340.GN25802@redhat.com> (raw)
In-Reply-To: <87wpilm4ck.fsf@dusky.pond.sub.org>
On Fri, Sep 09, 2016 at 06:21:15PM +0200, Markus Armbruster wrote:
> "Dr. David Alan Gilbert" <dgilbert@redhat.com> writes:
>
> > * Daniel P. Berrange (berrange@redhat.com) wrote:
> >> IIUC, you switched because string-output-visitor could not handle
> >> complex types.
> >>
> >> I have previously written a text-output-visitor that could do
> >> this correctly, since we have this exact same requirement for
> >> 'qemu-info info' to print out the extra-block specific data
> >> in human friendly format for the LUKS driver.
> >>
> >> https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg01727.html
> >
> > How close to going in is it? It looks from the comments that Eric
> > is thinking about fixing string-output-visitor.
> > I'm not clear why you'd want a text-output-visitor and a string-output-vistior.
>
> Me neither.
>
> In theory, we need two output visitors producing text, one for
> machine-readable output (JSON), and the one for human-readable output.
>
> For the latter, we use the string output visitor.
>
> For the former, we first use the (badly named) QMP output visitor to
> produce a QObject, which is then converted to JSON text by
> qobject_to_json() or qobject_to_json_pretty().
>
> Each of the two output visitors comes with a matching input visitor that
> reads the same format.
>
> To read JSON text, we first parse it into a QObject with
> json_message_parser_init() & friends, which we then pass to the QMP
> input visitor.
>
> If I read Dan's cover letter correctly, the proposed text output visitor
> competes with the string output visitor. Why not enhance or replace it?
I guess my original posting was not clear enough about the rational for
the separate visitor. Looking closely at the output format for the
existing string output visitor and comparing to what's proposed for my
text output visitor, you'll see they are completely different output
formats. They both happen to create strings, but that's pretty much
where the similarity ends. So while we could squish the functionality
into one visitor class, it wouldn't really let us share any code - the
visitor would just end up taking different codepaths for each style.
Having these two styles mixed will then make it harder to understand
the logic behind either of them.
There is a specific place where code sharing is useful though - the
formatting of a uint64 in sized notatation ie "1.24 GB", and for
that I'm creating a new shared helper function in util/cutils since
we've already got 2 copies of that logic !
Anyway, lets continue this debate on the patch series which actualy
proposes the text-output-visitor, which I'm re-posting in a few
minutes with greater explanation of the new format which should
hopefully clarify why it is justified.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
next prev parent reply other threads:[~2016-09-09 17:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-06 10:18 [Qemu-devel] [PATCH v2] qom: Implement qom-get HMP command Dr. David Alan Gilbert (git)
2016-09-06 12:35 ` Andreas Färber
2016-09-06 13:08 ` Daniel P. Berrange
2016-09-06 13:33 ` Dr. David Alan Gilbert
2016-09-09 16:21 ` Markus Armbruster
2016-09-09 17:33 ` Daniel P. Berrange [this message]
2016-09-12 7:58 ` Markus Armbruster
2016-09-13 8:39 ` Markus Armbruster
2016-09-14 10:30 ` Dr. David Alan Gilbert
2016-09-14 10:48 ` Daniel P. Berrange
2016-09-19 9:18 ` Markus Armbruster
2016-09-19 9:54 ` Daniel P. Berrange
2016-09-19 11:54 ` Daniel P. Berrange
2016-09-19 12:00 ` Dr. David Alan Gilbert
2016-09-19 13:11 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160909173340.GN25802@redhat.com \
--to=berrange@redhat.com \
--cc=afaerber@suse.de \
--cc=arei.gonglei@huawei.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).