From 12f2bd641e602e2ce83c3f3a31931b7bbe5db430 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Mon, 13 Jun 2011 15:24:21 +0100 Subject: [PATCH] Promote the marshalling format to a top-level section Reviewed-by: Will Thompson Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38252 --- doc/dbus-specification.xml | 40 +++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/doc/dbus-specification.xml b/doc/dbus-specification.xml index 52c9e6c3a..e5687ab38 100644 --- a/doc/dbus-specification.xml +++ b/doc/dbus-specification.xml @@ -843,9 +843,21 @@ + + + + Marshaling (Wire Format) + + + D-Bus defines a marshalling format for its type system, which is + used in D-Bus messages. This is not the only possible marshalling + format for the type system: for instance, GVariant (part of GLib) + re-uses the D-Bus type system but implements an alternative marshalling + format. + - - Marshaling (Wire Format) + + Byte order and alignment Given a type signature, a block of bytes can be converted into typed @@ -854,11 +866,11 @@ - A block of bytes has an associated byte order. The byte order - has to be discovered in some way; for D-Bus messages, the - byte order is part of the message header as described in - . For now, assume - that the byte order is known to be either little endian or big + A block of bytes has an associated byte order. The byte order + has to be discovered in some way; for D-Bus messages, the + byte order is part of the message header as described in + . For now, assume + that the byte order is known to be either little endian or big endian. @@ -872,6 +884,10 @@ not be left uninitialized (it can't contain garbage), and more padding than required must not be used. + + + + Marshalling basic types To marshal and unmarshal fixed types, you simply read one value @@ -899,6 +915,16 @@ byte. As a result, alignment padding is never required before a SIGNATURE. + + + + Marshalling containers + + ... to be written ... + + + + Summary of D-Bus marshalling Given all this, the types are marshaled on the wire as follows: -- 2.47.3