L4Re – L4 Runtime Environment
L4Re::Util::Registry_server< LOOP_HOOKS > Class Template Reference

A server loop object which has a Object_registry included. More...

+ Inheritance diagram for L4Re::Util::Registry_server< LOOP_HOOKS >:
+ Collaboration diagram for L4Re::Util::Registry_server< LOOP_HOOKS >:

Public Member Functions

 Registry_server ()
 Create a new server loop object for the main thread of the task. More...
 
 Registry_server (l4_utcb_t *utcb, L4::Cap< L4::Thread > server, L4::Cap< L4::Factory > factory)
 Create a new server loop object for an arbitrary thread and factory. More...
 
Object_registry const * registry () const
 Return registry of this server loop.
 
Object_registryregistry ()
 Return registry of this server loop.
 
void L4_NORETURN loop ()
 Start the server loop.
 
- Public Member Functions inherited from L4::Server< L4::Ipc_svr::Default_loop_hooks >
 Server (l4_utcb_t *utcb)
 Initializes the server loop. More...
 
L4_NORETURN void internal_loop (DISPATCH dispatch)
 The server loop. More...
 
L4_NORETURN void loop_noexc (R r)
 Server loop without exception handling.
 
L4_NORETURN void loop (R r)
 Server loop with internal exception handling. More...
 
- Public Member Functions inherited from L4::Ipc_svr::Br_manager_no_buffers
int alloc_buffer_demand (Demand const &demand)
 Tells the server to allocate buffers for the given demand. More...
 
L4::Cap< void > get_rcv_cap (int) const
 Returns L4::Cap<void>::Invalid, we have no buffer management.
 
int realloc_rcv_cap (int)
 Returns -L4_ENOMEM, we have no buffer management.
 
int add_timeout (Timeout *, l4_kernel_clock_t)
 Returns -L4_ENOSYS, we have no timeout queue.
 
int remove_timeout (Timeout *)
 Returns -L4_ENOSYS, we have no timeout queue.
 
- Public Member Functions inherited from L4::Ipc_svr::Server_iface
 Server_iface ()
 Make a server interface.
 
template<typename T >
L4::Cap< T > rcv_cap (int index) const
 Get given receive buffer as typed capability. More...
 
L4::Cap< void > rcv_cap (int index) const
 Get receive cap with the given index as generic (void) type. More...
 

Additional Inherited Members

- Public Types inherited from L4::Ipc_svr::Server_iface
typedef L4::Type_info::Demand Demand
 Data type expressing server-side demand for receive buffers.
 
- Protected Member Functions inherited from L4::Server< L4::Ipc_svr::Default_loop_hooks >
l4_msgtag_t reply_n_wait (l4_msgtag_t reply, l4_umword_t *p)
 Internal implementation for reply and wait.
 
- Protected Member Functions inherited from L4::Ipc_svr::Br_manager_no_buffers
unsigned first_free_br () const
 Returns 1 as first free buffer.
 
void setup_wait (l4_utcb_t *utcb, L4::Ipc_svr::Reply_mode)
 Setup wait function for the server loop (Server<>).
 

Detailed Description

template<typename LOOP_HOOKS = L4::Ipc_svr::Default_loop_hooks>
class L4Re::Util::Registry_server< LOOP_HOOKS >

A server loop object which has a Object_registry included.

Examples
examples/clntsrv/server.cc, examples/libs/l4re/c++/shared_ds/ds_srv.cc, and examples/libs/l4re/streammap/server.cc.

Definition at line 306 of file object_registry.

Constructor & Destructor Documentation

◆ Registry_server() [1/2]

template<typename LOOP_HOOKS = L4::Ipc_svr::Default_loop_hooks>
L4Re::Util::Registry_server< LOOP_HOOKS >::Registry_server ( )
inline

Create a new server loop object for the main thread of the task.

Precondition
Must be called from the main thread or behaviour is undefined.

Definition at line 318 of file object_registry.

◆ Registry_server() [2/2]

template<typename LOOP_HOOKS = L4::Ipc_svr::Default_loop_hooks>
L4Re::Util::Registry_server< LOOP_HOOKS >::Registry_server ( l4_utcb_t utcb,
L4::Cap< L4::Thread server,
L4::Cap< L4::Factory factory 
)
inline

Create a new server loop object for an arbitrary thread and factory.

Parameters
utcbThe UTCB of the thread running the server loop.
serverCapability to thread running the server loop.
factoryCapability to factory object used to create new IPC gates.

Definition at line 328 of file object_registry.


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