1.1 --- a/docs/wiki/Server_Library Fri Dec 02 00:49:52 2022 +0100
1.2 +++ b/docs/wiki/Server_Library Fri Dec 02 01:00:28 2022 +0100
1.3 @@ -220,26 +220,20 @@
1.4 controlled by `libipc`:
1.5
1.6 {{{
1.7 -int expected_items();
1.8 -ipc_server_handler_type handler();
1.9 +ipc_server_default_config_type config();
1.10 void *interface();
1.11 }}}
1.12
1.13 -The `expected_items` operation returns the number of message items expected
1.14 -from clients invoking server operations exposed via IPC. Typically, the
1.15 -returned value will be calculated for a given server interface by a tool such
1.16 -as `idl`, provided by the idl4re distribution.
1.17 -
1.18 -The `handler` operation returns a reference to a handler function able to
1.19 -interpret the operation codes in incoming messages and to dispatch to the
1.20 -appropriate operations provided by the resource. Typically, such a function
1.21 +The `config` operation returns a default configuration object containing
1.22 +details pertinent to the initialisation of a server for the resource, these
1.23 +involving aspects of incoming messages and the handler function to deal with
1.24 +such messages. Typically, such an object, along with the handler function,
1.25 will be generated by a tool such as `idl`.
1.26
1.27 -The `interface` operation returns a pointer to the resource instance, coerced
1.28 -to an appropriate type for the handler function. Such a type will be that of
1.29 -the most specialised IPC interface type inherited by the resource
1.30 -implementation. The function returned by the `handler` operation will expect a
1.31 -pointer to an instance of this appropriate type.
1.32 +The `interface` operation returns a pointer to the resource instance coerced
1.33 +to an appropriate type. Such a type will be that of the most specialised IPC
1.34 +interface type inherited by the resource implementation, as expected by the
1.35 +handler function for the resource.
1.36
1.37 For example, consider the following:
1.38
1.39 @@ -248,9 +242,10 @@
1.40 }}}
1.41
1.42 Here, the `interface` operation will return a pointer coerced to
1.43 -`MappedFileObject`, and the `handler` operation will return a reference to a
1.44 -function expecting to be able to interpret this pointer as referring to
1.45 -precisely that type.
1.46 +`MappedFileObject`, and the `config` operation will return a suitable
1.47 +configuration object. The `idl` tool will produce an object called
1.48 +`config_MappedFileObject` for this purpose along with a handler function
1.49 +called `handle_MappedFileObject` available via the configuration object.
1.50
1.51 == Registries ==
1.52