From 52de02348287fbc3ed24c00f154b3d9cb45830e7 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Sun, 18 Aug 2013 16:52:36 -0500 Subject: [PATCH] doc: Update the ID alocation section The method described of alocation IDs has been wrong at least since version 1.0. This commit updates it to correspond to the way IDs are chosen in versions >= 1.0. Signed-off-by: Jason Ekstrand --- doc/publican/sources/Protocol.xml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/publican/sources/Protocol.xml b/doc/publican/sources/Protocol.xml index 33df6a9..74f2aea 100644 --- a/doc/publican/sources/Protocol.xml +++ b/doc/publican/sources/Protocol.xml @@ -196,10 +196,16 @@
Creating Objects - Each object has a unique ID. The IDs are allocated by the - client, from a range of IDs. The server tracks how many - IDs are left in the current range and sends a new range - when the client is about to run out. + Each object has a unique ID. The IDs are allocated by the entity + creating the object (either client or server). IDs allocated by the + client are in the range [1, 0xfeffffff] while IDs allocated by the + server are in the range [0xff000000, 0xffffffff]. The 0 ID is + reserved to represent a null or non-existant object. + + For efficiency purposes, the IDs are densely packed in the sense that + the ID N will not be used until N-1 has been used. Any ID allocation + algorithm that does not maintain this property is incompatible with + the implementation in libwayland.