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_registry * | registry ()
| Return registry of this server loop.
void L4_NORETURN | loop (l4_utcb_t *utcb=l4_utcb())
| Start the server loop.
template<typename Printer>
void L4_NORETURN | loop_dbg (Printer printer, l4_utcb_t *utcb=l4_utcb())
| Start the server loop with error printing.
Public Member Functions inherited from L4::Server< L4::Ipc_svr::Default_loop_hooks >
| Server (l4_utcb_t *)
| Initializes the server loop.
L4_NORETURN void | internal_loop (DISPATCH dispatch, l4_utcb_t *)
| The server loop.
L4_NORETURN void | loop_noexc (R r, l4_utcb_t *u=l4_utcb())
| Server loop without exception handling.
L4_NORETURN void | loop (R r, l4_utcb_t *u=l4_utcb())
| Server loop with internal exception handling.
L4_NORETURN void | loop_dbg (R r, Printer p, l4_utcb_t *u=l4_utcb())
| Server loop with internal exception handling including message printing.
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< L4::Ipc_svr::Default_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/src/server.cc, examples/libs/l4re/c++/shared_ds/ds_srv.cc, and examples/libs/l4re/streammap/server.cc.

Definition at line 293 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 305 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

  server | Capability to thread running the server loop.
  factory | Capability 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 317 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

  server | Capability to thread running the server loop.
  factory | Capability to factory object used to create new IPC gates.

Definition at line 328 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

  utcb | The UTCB of the thread running the server loop, defaults to l4_utcb().

Definition at line 344 of file object_registry.

References L4_NORETURN, and loop().

Referenced by loop().

Here is the call graph for this function:
Here is the caller graph for this function:

## loop_dbg()

template<typename LOOP_HOOKS = L4::Ipc_svr::Default_loop_hooks>
template<typename Printer>

void L4_NORETURN L4Re::Util::Registry_server< LOOP_HOOKS >::loop_dbg | ( | Printer | printer,
|  | l4_utcb_t * | utcb = l4_utcb() )

inline

Start the server loop with error printing.

Template Parameters

  Printer | The printer type.

Parameters

  printer | The printer object on which printf() is called.
  utcb | The UTCB of the thread running the server loop, defaults to l4_utcb().

Definition at line 356 of file object_registry.

References L4_NORETURN, and loop_dbg().

Referenced by loop_dbg().

Here is the call graph for this function:
Here is the caller graph for this function:

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

- l4/re/util/object_registry