From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MzXdu-0005aH-9e for qemu-devel@nongnu.org; Sun, 18 Oct 2009 11:25:58 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MzXdo-0005ZB-Ts for qemu-devel@nongnu.org; Sun, 18 Oct 2009 11:25:57 -0400 Received: from [199.232.76.173] (port=46654 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MzXdo-0005Z8-NO for qemu-devel@nongnu.org; Sun, 18 Oct 2009 11:25:52 -0400 Received: from mail-ew0-f211.google.com ([209.85.219.211]:60824) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MzXdo-0007ht-B2 for qemu-devel@nongnu.org; Sun, 18 Oct 2009 11:25:52 -0400 Received: by ewy7 with SMTP id 7so2799987ewy.34 for ; Sun, 18 Oct 2009 08:25:50 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <4ADB337B.7080803@gnu.org> Date: Sun, 18 Oct 2009 17:25:47 +0200 From: Paolo Bonzini MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 01/10] Introduce qmisc module References: <1255037747-3340-1-git-send-email-lcapitulino@redhat.com> <1255037747-3340-2-git-send-email-lcapitulino@redhat.com> <4AD72B88.2040107@codemonkey.ws> <20091015122622.1f93ea2d@doriath> <20091015163936.GB532@redhat.com> <20091015142837.6c90580a@doriath> <4AD76B3C.3050001@codemonkey.ws> <4AD87424.3010000@redhat.com> <4AD87901.5030705@codemonkey.ws> <4AD8AECE.9000507@redhat.com> <4AD8AFA4.4070203@codemonkey.ws> <4AD8CB31.9080809@redhat.com> <4AD8E7B5.8000509@codemonkey.ws> <4AD910BA.4090607@gnu.org> <4AD922EB.5030501@codemonkey.ws> <4AD995FD.6070202@snarc.org> <20091018120631.0ab44d80@doriath> <4ADB2172.2040501@gnu.org> <4ADB2B13.4090207@codemonkey.ws> <20091018131818.6d8d73ae@doriath> In-Reply-To: <20091018131818.6d8d73ae@doriath> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: Vincent Hanquez , qemu-devel@nongnu.org >> I'd strongly suggest making the JSON encoder live outside of QObject. >> There are many possible ways to represent a QObject. Think of JSON as a >> view of the QObject model. The human monitor mode representation is a >> different view. My rationale was that since QObject is tailored over JSON, we might as well declare JSON to be "the" preferred view of the QObject model. The human monitor representation would be provided by qstring_format in my patches (and a QError method would call qstring_format in the appropriate way, returning a C string with the result). I think the different opinions is also due to different background; mine is in Smalltalk where class extensions---aka monkeypatching---are done in a different style than for example in Python. Adding a "write as escaped JSON" method to QString would be akin to monkeypatching. > I agree. > > QObject's methods should only be used/needed by the object layer itself, > if the problem at hand handles high level data types (QInt, QDict, etc) > then we need a new type. > > The right way to have what Paolo is suggesting, would be to have a > toString() method in the object layer and allow it to be overridden. That's exactly what I did in my patches, except I called it encode_json rather than toString. Paolo