![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
Base class (template) for server implementing server objects. More...
#include <ipc_server>
Public Types | |
| typedef IFACE | Interface |
| Data type of the IPC interface definition. | |
| Public Types inherited from L4::Epiface | |
| typedef Ipc_svr::Server_iface | Server_iface |
| Type for abstract server interface. | |
| typedef Ipc_svr::Server_iface::Demand | Demand |
| Type for server-side receive buffer demand. | |
Public Member Functions | |
| BASE::Demand | get_buffer_demand () const override |
| int | dispatch_meta_request (L4::Ipc::Iostream &ios) |
| Implementation of the meta protocol based on IFACE. | |
| Public Member Functions inherited from L4::Server_object | |
| virtual int | dispatch (unsigned long rights, Ipc::Iostream &ios)=0 |
| The abstract handler for client requests to the object. | |
| l4_msgtag_t | dispatch (l4_msgtag_t tag, unsigned rights, l4_utcb_t *utcb) override |
| The abstract handler for client requests to the object. | |
| Public Member Functions inherited from L4::Epiface | |
| Epiface () | |
| Make a server object. | |
| virtual | ~Epiface ()=0 |
| Destroy the object. | |
| Stored_cap | obj_cap () const |
| Get the capability to the kernel object belonging to this object. | |
| Server_iface * | server_iface () const |
| Get pointer to server interface at which the object is currently registered. | |
| int | set_server (Server_iface *srv, Cap< void > cap, bool managed=false) |
| Set server registration info for the object. | |
| void | set_obj_cap (Cap< void > const &cap) |
| Deprecated server registration function. | |
Static Public Member Functions | |
| 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. | |
Base class (template) for server implementing server objects.
| IFACE | The IPC interface class that defines the interface that shall be implemented. |
| BASE | The server object base class (usually L4::Server_object). |
Definition at line 80 of file ipc_server.
|
inline |
Implementation of the meta protocol based on IFACE.
| ios | The IO stream used for receiving the message. |
This function can be used to handle incoming L4_PROTO_META protocol requests. The implementation uses the L4::Type_info of IFACE to handle the requests. Call this function in the implementation of Server_object::dispatch() when the received message tag has protocol L4_PROTO_META (L4::Meta::Protocol).
Definition at line 99 of file ipc_server.
|
inlineoverridevirtual |
Implements L4::Epiface.
Definition at line 86 of file ipc_server.
|
inlinestatic |
Implementation of protocol-based dispatch for this server object.
| self | The this pointer for the object (inherits from Server_object_t). |
| rights | The rights from the received IPC (forwarded to p_dispatch()). |
| ios | The message stream for the incoming and the reply message. |
Server objects may call this function from their dispatch() function. This function reads the protocol ID from the message tag and uses the p_dispatch code to dispatch to overloaded p_dispatch functions of self.
Definition at line 114 of file ipc_server.
References l4_msgtag_t::label(), and L4::Kobject_typeid< T >::proto_dispatch().
Referenced by L4::Server_object_x< Derived, IFACE, BASE >::dispatch().