4 template<
class ClientType >
8 _client_ptr( reinterpret_cast< void * >( client ) ),
9 _client_type( typeid( ClientType ) ),
11 status_printer_w( nullptr ),
19 template<
class ClientType >
23 _client_ptr( reinterpret_cast< void * >( client ) ),
24 _client_type( typeid( ClientType ) ),
26 status_printer_w( &
ClientMarker::StatusPrinterWImpl< ClientType > ),
34 template<
class ClientType >
37 ClientType * client_ptr_T =
reinterpret_cast< ClientType *
>(
client_ptr );
38 client_ptr_T->status( view );
41 template<
class TypedClient >
44 if( this->_client_type ==
typeid( TypedClient ) )
45 return reinterpret_cast< TypedClient *
>( this->_client_ptr );
50 template<
class ... Rest >
51 void ClientMarker::inherits(
ClientMarker & parent, Rest & ... rest )
55 this->
warning(
SRC_INFO,
"ClientMarkers from different instances can not inherit each other." );
59 this->inh_parents.insert( &parent );
60 parent.inh_child =
this;
64 template<
class ... Rest >
69 this->
warning(
SRC_INFO,
"ClientMarkers from different instances can not inherit each other." );
73 this->own_children.insert( &parent );
74 parent.own_parent =
this;
75 this->
owns( rest... );