From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MyW95-0001zy-Ei for qemu-devel@nongnu.org; Thu, 15 Oct 2009 15:37:55 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MyW91-0001zG-Ro for qemu-devel@nongnu.org; Thu, 15 Oct 2009 15:37:55 -0400 Received: from [199.232.76.173] (port=59018 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MyW91-0001zD-Lv for qemu-devel@nongnu.org; Thu, 15 Oct 2009 15:37:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54621) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MyW91-0008T4-5G for qemu-devel@nongnu.org; Thu, 15 Oct 2009 15:37:51 -0400 Date: Thu, 15 Oct 2009 16:37:38 -0300 From: Luiz Capitulino Subject: Re: [Qemu-devel] [PATCH v0 0/9] QError Message-ID: <20091015163738.7de57ac7@doriath> In-Reply-To: <4AD77709.7090909@codemonkey.ws> References: <1255453026-18637-1-git-send-email-lcapitulino@redhat.com> <4AD77709.7090909@codemonkey.ws> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, kraxel@redhat.com On Thu, 15 Oct 2009 14:24:57 -0500 Anthony Liguori wrote: > Luiz Capitulino wrote: > > This series adds infrastructure which will be needed by the future monitor > > protocol to handle and emit error information correctly. > > > > QError is a QObject designed to stored error information in way that it can > > be emitted by the protocol code or printed in an user friendly way. > > > > To use it in the Monitor and its handlers, I've added a function called > > qemu_error_structed(), which builds on top of Gerd's QemuErrorSink API, this > > means that it is also capable of printing error information to stderr. > > > > Basically, we have a QError member in the Monitor struct, which will be set > > if an error has occurred. The Monitor's top level code will check it at > > handler exit time and handle the error properly. > > > > QError represents an error, and it has the following properties: > > > > - Error code > > - Error general description > > - Error specific data > > > > Code and description are stored in a static table in the QError module itself, > > the error specific data is generated at error time by the function calling > > qemu_error_structed(). > > > > This design is based on the way I plan to emit error information in the > > protocol, which is: > > > > { "error": { "code": json-number, > > "desc": json-string, > > "data": json-value } "id": json-value, "timestamp": json-string } > > > > Why timestamp? I would have to dig the archives to find the thread, but some people have asked to provide the timestamp on every replies (either, error or regular output).