aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/info/mds.texinfo222
-rw-r--r--doc/protocols125
2 files changed, 222 insertions, 125 deletions
diff --git a/doc/info/mds.texinfo b/doc/info/mds.texinfo
index 6f5c028..1c07966 100644
--- a/doc/info/mds.texinfo
+++ b/doc/info/mds.texinfo
@@ -56,6 +56,7 @@ Texts. A copy of the license is included in the section entitled
* Protocol:: The @command{mds} procotol.
* Utilities:: About @command{mds} utilities.
* Servers:: About @command{mds} servers.
+* Protocols:: @command{mds} procotols.
* libmdsserver:: Overview of @command{libmdsserver}.
* mds-base:: Overview of @command{mds-base}.
* GNU Free Documentation License:: Copying and sharing this manual.
@@ -1714,6 +1715,227 @@ simple, reference implementation of a, status icon tray.
+@node Protocols
+@chapter Protocols
+
+@menu
+* Infrastructure protocols:: Infrastructure protocols.
+@end menu
+
+
+
+@node Infrastructure protocols
+@section Infrastructure protocols
+
+@menu
+* assign-id:: Assign new ID to client, or fetch current ID.
+* intercept:: Sign up for reception of message.
+* register:: Register availability of a command for which you implement a service.
+* reregister:: Request for reregistration for available commands.
+* error:: Notify a client about a request failure.
+@end menu
+
+
+
+@node assign-id
+@subsection assign-id
+
+@table @asis
+@item Identifying header:
+@code{Command: assign-id}
+
+@item Action:
+Assign new ID to client, or fetch current ID.
+
+@item Purpose:
+Assigning ID to clients so server can respond to that client.
+
+@item Compulsivity:
+Manditory, part of the core infrastructure.
+
+@item Reference implementation:
+@command{mds-server}
+@end table
+
+
+
+@node intercept
+@subsection intercept
+
+@table @asis
+@item Identifying header:
+@code{Command: intercept}
+
+@item Action:
+Sign up for reception of message.
+
+@item Optional header: @code{Stop}
+Stop reception of messages if the value for
+the header @code{Stop} is @code{yes}.
+
+@item Optional header: @code{Priority}
+Signed 64-bit integer of reception priority
+(reversed of order).
+
+@item Optional header: @code{Modifying}
+Send message asynchronously and await
+modification if the value for the header
+@code{Modifying} is @code{yes}.
+
+@item Optional header: @code{Length}
+Length of the message.
+
+@item Message:
+List of headers and header--value-pairs that
+qualifies a message for reception, all messages
+qualifies if this list is empty.
+
+@item Purpose:
+Filter received message for clients and servers.
+
+@item Purpose:
+Assigned interception order for modification of messages.
+
+@item Compulsivity:
+Manditory, part of the core infrastructure.
+
+@item Reference implementation:
+@command{mds-server}
+@end table
+
+
+
+@node register
+@subsection register
+
+@table @asis
+@item Identifying header:
+@code{Command: register}
+
+@item Action:
+Register availability of a command for which you implement a service.
+
+@item Required header: @code{Client ID}
+Your ID, provided by the @code{ID assignment} header
+in response to a @code{Command: assign-id} header.
+
+@item Conditionally required header: @code{Length}
+Length of the message.
+Required if @code{Action: list} is included in the headers.
+
+@item Optional header: @code{Action}
+@table @code
+@item remove
+Remove availability from registry if the value
+of the header @code{Action} is @code{remove}.
+@item wait
+Wait until listed commands are available if the
+value of the header @code{Action} is @code{wait}.
+However if a protocol becomes unavailable during this
+wait period it will still be counted as available for
+this wait action.
+@item list
+Send a list of availability commands if the value
+of the header @code{Action} is @code{list}.
+@end table
+
+@item Conditionally optional header: @code{Time to live}
+The maximum number of seconds to wait.
+Available and optional if @code{Action: wait}
+is included in the headers.
+
+@item Message:
+List of values for the header @code{Command}
+that you implement.
+
+@item Purpose:
+Identify supported display server operations.
+
+@item Purpose:
+Initialisation process synchronisation.
+
+@item Compulsivity:
+Highly recommended, programs may stall a bit from
+time to time without it, or at initialisation
+depending on the program's implementation.
+
+@item Reference implementation:
+@command{mds-registry}
+@end table
+
+
+
+@node reregister
+@subsection reregister
+
+@table @asis
+@item Identifying header:
+@code{Command: reregister}
+
+@item Action:
+Request that all servers resends @code{Command: register}
+with either @code{Action: add} or without the @code{Action}
+header (does the same thing.)
+
+@item Purpose:
+Rebuild registry created with @code{Command: register}
+if the registry server crashes.
+
+@item Compulsivity:
+Highly recommended, programs may think a protocol is not
+supported of the registry server crashes if you do not
+implement this in your server.
+
+@item Reference implementation:
+@command{mds-registry} and most servers.
+@end table
+
+
+
+@node error
+@subsection error
+
+@table @asis
+@item Identifying header:
+@code{Command: error}
+
+@item Action:
+Notify a client about a request failure.
+
+@item Required header: @code{To}
+The ID of the client that send a request that failed.
+
+@item Required header: @code{In response to}
+The ID of the message whose request failed.
+
+@item Required header: @code{Error}
+The errno number of the error, 0 on success if the
+message was not an information query. The string
+``custom'' can be used if there is not errno number,
+optionally followed by a blank space and a number
+that identifies the error, this number must be
+positive (not zero).
+
+@item Conditionally optional header: @code{Length}
+The length of the message.
+Available and optional if ``custom'' is used in
+the header @code{Error}.
+
+@item Message:
+Description of the error, single line, mid-sentence case,
+no punctuation in the end, must not be question but rather
+it must be a statement.
+
+@item Purpose:
+Enable keyboard layout servers to automatically set active
+locks when the server starts based on currently active LED:s.
+
+@item Compulsivity:
+Optional.
+@end table
+
+
+
@node libmdsserver
@chapter libmdsserver
diff --git a/doc/protocols b/doc/protocols
index c45b894..58f0d4d 100644
--- a/doc/protocols
+++ b/doc/protocols
@@ -1,48 +1,5 @@
---------------------------------------------------------------------
-Command: assign-id
- Assign new ID to client, or fetch current ID
-
-Purpose: assigning ID to clients so server can respond to that client
-
-Compulsivity: manditory (core infrastructure)
-
-More documentation: doc/messages
-
-Reference implementation: mds-server
-
----------------------------------------------------------------------
-
-Command: intercept
- Sign up for reception of message
-
-Optional header: Stop
- Stop reception of messages if `yes`
-
-Optional header: Priority
- Signed 64-bit integer of reception priority (reversed of order)
-
-Optional header: Modifying
- Send message asynchronously and await modification if `yes`
-
-Optional header: Length
- Length of the message
-
-Message: list of headers and header–value-pairs that qualifies
- a message for reception, all messages qualifies if this
- list is empty
-
-Purpose: filter received message for clients and servers
-Purpose: assigned interception order for modification of messages
-
-Compulsivity: manditory (core infrastructure)
-
-More documentation: doc/messages
-
-Reference implementation: mds-server
-
----------------------------------------------------------------------
-
Command: echo
Echo back a message
@@ -64,56 +21,6 @@ Reference implementation: mds-echo
---------------------------------------------------------------------
-Command: register
- Register availability of a command for which you implement a service
-
-Required header: Client ID
- Your ID, provided by `ID assignment`
- in response to `Command: assign-id`
-
-Conditionally required header: Length
- Required if: `Action: list`
- Length of the message
-
-Optional header: Action
- Remove availability for registry if `remove`.
- Wait until listed commands are available if `wait`,
- however if a protocol becomes unavailable during this
- wait period it will still be counted as available for
- this wait action.
- Send a list of availability commands if `list`.
-
-Conditionally optional header: Time to live
- Available and optional if: `Action: wait`
- The maximum number of seconds to wait.
-
-Message: List of values for the header `Command` that you implement
-
-Purpose: Identify supported display server operations
-Purpose: Initialisation process synchronisation
-
-Compulsivity: highly recommended (infrastructure), programs may
- stall a bit from time to time without it, or at
- initialisation depending on the program's implementation
-
-Reference implementation: mds-registry
-
----------------------------------------------------------------------
-
-Command: reregister
- Request that all servers resends `Command: register` with either
- `Action: add` or without the `Action` header (does the same thing)
-
-Purpose: Rebuild registry created with `Command: register` if the
- registry server crashes
-
-Compulsivity: highly recommended (infrastructure), programs may
- think a protocol is not supported of the registry
- server crashes if you do not implement this in your
- server
-
----------------------------------------------------------------------
-
Command: clipboard
Read or manipulate a clipboard
@@ -704,38 +611,6 @@ Reference implementation: kbd
---------------------------------------------------------------------
-Command: error
- Notify a client about a request failure
-
-Required header: To
- The ID of the client that send a request that failed
-
-Required header: In response to
- The ID of the message whose request failed
-
-Required header: Error
- The errno number of the error, 0 on success if the
- message was not an information query. The string
- "custom" can be used if there is not errno number,
- optionally followed by a blank space and a number
- that identifies the error, this number must be
- positive (not zero).
-
-Conditionally optional header: Length
- Available and optional if: "custom" as used in `Error`
- The length of the message
-
-Message: Description of the error, single line, mid-sentence case,
- no punctuation in the end, must not be question but rather
- it must be a statement
-
-Purpose: Enable keyboard layout servers to automatically set active
- locks when the server starts based on currently active LED:s
-
-Compulsivity: optional
-
----------------------------------------------------------------------
-
Command: get-vt
Get the index of the virtual terminal the server is display on
and the servers file descriptor for that tty