L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4Re::Util::Registry_server< LOOP_HOOKS > Class Template Reference

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

#include <object_registry>

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

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< LOOP_HOOKS >
l4_msgtag_t reply_n_wait (l4_msgtag_t reply, l4_umword_t *p, l4_utcb_t *)
 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 307 of file object_registry.

Constructor & Destructor Documentation

◆ Registry_server() [1/3]

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 319 of file object_registry.

◆ Registry_server() [2/3]

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

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

Parameters
serverCapability to thread running the server loop.
factoryCapability to factory object used to create new IPC gates.
Deprecated:
Note that this variant of the constructor is deprecated, please do not supply the UTCB pointer, it's not used.

Definition at line 331 of file object_registry.

◆ Registry_server() [3/3]

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

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

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

Definition at line 342 of file object_registry.

Member Function Documentation

◆ loop()

template<typename LOOP_HOOKS = L4::Ipc_svr::Default_loop_hooks>
void L4_NORETURN L4Re::Util::Registry_server< LOOP_HOOKS >::loop ( l4_utcb_t utcb = l4_utcb())
inline

Start the server loop.

Parameters
utcbThe UTCB of the thread running the server loop, defaults to l4_utcb().
Examples
examples/clntsrv/server.cc, and examples/libs/l4re/streammap/server.cc.

Definition at line 358 of file object_registry.


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