Loading...
Searching...
No Matches
L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND > Class Template Reference
Base API » Kernel Objects » L4 kernel object type information

Helper class to create an L4Re interface class that is derived from two base classes (see L4::Kobject_t). More...

`#include <l4/sys/capability>`

Inheritance diagram for L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >:
Collaboration diagram for L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >:

## Protected Types

typedef Derived | Class
| The target interface type (inheriting from Kobject_t).
typedef Typeid::Iface< PROTO, Derived > | __Iface
| The interface description for the derived class.
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, Typeid::Merge_list< typename Base1::__Iface_list, typename Base2::__Iface_list > > | __Iface_list
| The list of all RPC interfaces provided directly or through inheritance.

## Protected Member Functions

L4::Cap< Class > | c () const noexcept
| Get the capability to ourselves.

## Static Protected Member Functions

static void | __check_protocols__ () noexcept
| Helper to check for protocol conflicts.

## Detailed Description

template<typename Derived, typename Base1, typename Base2, long PROTO = PROTO_ANY, typename S_DEMAND = Type_info::Demand_t<>>
class L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >

Helper class to create an L4Re interface class that is derived from two base classes (see L4::Kobject_t).

Template Parameters

  Derived | is the name of the new interface.
  Base1 | is the name of the interface's first base class.
  Base2 | is the name of the interface's second base class.
  PROTO | may be set to the statically assigned protocol number used to communicate with this interface.
  S_DEMAND | type defining the demand of server-side resources for this interface, usually a L4::Type_info::Demand_t. This value must describe the server-side resources needed by the interface itself, the resource demand of the base interfaces (Base1 and Base2) are automatically included.

The typical usage pattern is shown in the following code snippet. The semantics of this example is an interface My_iface that is derived from L4::Icu and L4Re::Dataspace.

class My_iface : public L4::Kobject_2t<My_iface, L4::Icu, L4Re::Dataspace>
{
...
};
L4::Kobject_2t
Helper class to create an L4Re interface class that is derived from two base classes (see L4::Kobject...
Definition __typeinfo.h:828

Definition at line 827 of file __typeinfo.h.

## Member Typedef Documentation

## __Iface

template<typename Derived, typename Base1, typename Base2, long PROTO = PROTO_ANY, typename S_DEMAND = Type_info::Demand_t<>>

typedef Typeid::Iface<PROTO, Derived> L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >::__Iface

protected

The interface description for the derived class.

Definition at line 833 of file __typeinfo.h.

## __Iface_list

template<typename Derived, typename Base1, typename Base2, long PROTO = PROTO_ANY, typename S_DEMAND = Type_info::Demand_t<>>

typedef Typeid::Merge_list< Typeid::Iface_list<__Iface>, Typeid::Merge_list< typename Base1::__Iface_list, typename Base2::__Iface_list > > L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >::__Iface_list

protected

The list of all RPC interfaces provided directly or through inheritance.

Definition at line 841 of file __typeinfo.h.

## Class

template<typename Derived, typename Base1, typename Base2, long PROTO = PROTO_ANY, typename S_DEMAND = Type_info::Demand_t<>>

typedef Derived L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >::Class

protected

The target interface type (inheriting from Kobject_t).

Definition at line 831 of file __typeinfo.h.

## Member Function Documentation

## __check_protocols__()

template<typename Derived, typename Base1, typename Base2, long PROTO = PROTO_ANY, typename S_DEMAND = Type_info::Demand_t<>>

void L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >::__check_protocols__ | ( |  | ) |

inlinestaticprotectednoexcept

Helper to check for protocol conflicts.

Definition at line 844 of file __typeinfo.h.

## c()

template<typename Derived, typename Base1, typename Base2, long PROTO = PROTO_ANY, typename S_DEMAND = Type_info::Demand_t<>>

L4::Cap< Class > L4::Kobject_2t< Derived, Base1, Base2, PROTO, S_DEMAND >::c | ( |  | ) | const

inlineprotectednoexcept

Get the capability to ourselves.

Definition at line 863 of file __typeinfo.h.

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

- l4/sys/__typeinfo.h