L4Re - L4 Runtime Environment
L4::Server_object_x< Derived, IFACE, BASE > Struct Template Reference

Helper class to implement p_dispatch based server objects. More...

+ Inheritance diagram for L4::Server_object_x< Derived, IFACE, BASE >:
+ Collaboration diagram for L4::Server_object_x< Derived, IFACE, BASE >:

Public Member Functions

int dispatch (l4_umword_t r, L4::Ipc::Iostream &ios)
 Implementation forwarding to p_dispatch().
 
- Public Member Functions inherited from L4::Server_object_t< IFACE, BASE >
BASE::Demand get_buffer_demand () const
 
int dispatch_meta_request (L4::Ipc::Iostream &ios)
 Implementation of the meta protocol based on IFACE. More...
 

Additional Inherited Members

- Public Types inherited from L4::Server_object_t< IFACE, BASE >
typedef IFACE Interface
 Data type of the IPC interface definition.
 
- Static Public Member Functions inherited from L4::Server_object_t< IFACE, BASE >
template<typename THIS >
static int proto_dispatch (THIS *self, l4_umword_t rights, L4::Ipc::Iostream &ios)
 Implementation of protocol-based dispatch for this server object. More...
 

Detailed Description

template<typename Derived, typename IFACE, typename BASE = L4::Server_object>
struct L4::Server_object_x< Derived, IFACE, BASE >

Helper class to implement p_dispatch based server objects.

Template Parameters
DerivedThe data type of your server object class.
IFACEThe data type providing the interface definition for the object.
BASEOptional data-type of the base server object (usually L4::Server_object)

This class implements the standard dispatch() function of L4::Server_object and forwards incoming messages to a set of overloaded p_dispatch() functions. There must be a p_dispatch() function in Derived for each interface provided by IFACE with the signature

int p_dispatch(Iface *, unsigned rights, L4::Ipc::Iostream &)

that is called for messages with protocol == Iface::Protocol.

Example signature for L4Re::Dataspace is:

int p_dispatch(L4Re::Dataspace *, unsigned, L4::Ipc::Iostream &)

Definition at line 154 of file ipc_server.


The documentation for this struct was generated from the following file: