#include <ClientMarker.hpp>
Classes | |
struct | Status |
Public Member Functions | |
template<class ClientType > | |
ClientMarker (Instance *inst, ClientType *client, const char *name) | |
template<class ClientType > | |
ClientMarker (Instance *inst, ClientType *client, const char *name, Status) | |
~ClientMarker () | |
ClientMarker (ClientMarker const &)=delete | |
ClientMarker & | operator= (ClientMarker const &)=delete |
template<class ... Rest> | |
void | inherits (ClientMarker &parent, Rest &... rest) |
template<class ... Rest> | |
void | owns (ClientMarker &ownee, Rest &... rest) |
std::type_index | client_type () const |
std::type_index | type () const |
Alias for client_type. More... | |
template<class TypedClient > | |
TypedClient * | client () const |
Instance * | instance () const |
const std::string & | name () const |
unsigned | marker_id () const |
Id unique to ClientMarker's name. More... | |
std::string | name_id () const |
Name concatenated with marker_id with space inbetween. More... | |
std::string | root_name_id () const |
Name concatenated with marker_id with space inbetween. More... | |
void | print_status (TableDebugView *view) const |
void | print_status (TextDebugView *view) const |
void | print_status_with_inherited (TextDebugView *view, ClientMarker *emphasize=nullptr) const |
void | print_status_with_inherited (TreeDebugView *view, ClientMarker *emphasize=nullptr) const |
void | print_status_with_related (TextDebugView *view) const |
void | print_status_with_related (TreeDebugView *view, TreeDebugView::BoxStyle=TreeDebugView::BoxStyle::Solid) const |
const ClientMarker * | inheritance_root () const |
instance of ClientMarker who has no inheritance child and is descendant of this ClientMarker More... | |
const ClientMarker * | inheritance_child () const |
client that directly inherits this client as inheritance parent in this instance (or null if none does it) More... | |
std::unordered_set< ClientMarker const * > | inheritance_parents () const |
Clients directly inherited by this client. More... | |
const ClientMarker * | relation_root () const |
consequencial inheritance and ownership root More... | |
const ClientMarker * | ownership_parent () const |
std::unordered_set< ClientMarker const * > | ownership_children () const |
Public Member Functions inherited from iv::Context | |
Context () | |
virtual | ~Context () |
template<class ... Items> | |
void | log (SrcInfo const &info, LogId id, Items const &... items) const |
bool | log_enabled (LogId id) const |
template<class ... Items> | |
void | warning (SrcInfo const &info, Items const &... items) const |
Protected Member Functions | |
virtual bool | log_process_enabled (LogId id) const override final |
virtual void | log_process (SrcInfo const &info, LogId id, std::string const &message) const override final |
Detailed Description
If client has status printer member function and is enabled in ClientMarker constructor - ClientMarker( inst, this, "<name>", ClientMarker::Status() ), then it will be used. Signature of status printer: void client_status( iv::TableDebugContext * context );
Definition at line 25 of file ClientMarker.hpp.
Constructor & Destructor Documentation
◆ ClientMarker() [1/3]
iv::ClientMarker::ClientMarker | ( | Instance * | inst, |
ClientType * | client, | ||
const char * | name | ||
) |
Definition at line 5 of file ClientMarker.inl.
◆ ClientMarker() [2/3]
iv::ClientMarker::ClientMarker | ( | Instance * | inst, |
ClientType * | client, | ||
const char * | name, | ||
Status | |||
) |
Definition at line 20 of file ClientMarker.inl.
◆ ~ClientMarker()
iv::ClientMarker::~ClientMarker | ( | ) |
Definition at line 23 of file ClientMarker.cpp.
◆ ClientMarker() [3/3]
|
delete |
Member Function Documentation
◆ operator=()
|
delete |
◆ inherits()
void iv::ClientMarker::inherits | ( | ClientMarker & | parent, |
Rest &... | rest | ||
) |
Marks client relation - inheritance. Optional - stored only to generate nicer logs and debug outputs.
Definition at line 51 of file ClientMarker.inl.
◆ owns()
void iv::ClientMarker::owns | ( | ClientMarker & | ownee, |
Rest &... | rest | ||
) |
Marks client relation - ownership. Optional - stored only to generate nicer logs and debug outputs.
Definition at line 65 of file ClientMarker.inl.
◆ client_type()
std::type_index iv::ClientMarker::client_type | ( | ) | const |
Typeindex of client marked by this marker.
Definition at line 39 of file ClientMarker.cpp.
◆ type()
std::type_index iv::ClientMarker::type | ( | ) | const |
Alias for client_type.
Definition at line 44 of file ClientMarker.cpp.
◆ client()
TypedClient * iv::ClientMarker::client |
Definition at line 42 of file ClientMarker.inl.
◆ instance()
Instance * iv::ClientMarker::instance | ( | ) | const |
Definition at line 49 of file ClientMarker.cpp.
◆ name()
const std::string & iv::ClientMarker::name | ( | ) | const |
Definition at line 29 of file ClientMarker.cpp.
◆ marker_id()
unsigned iv::ClientMarker::marker_id | ( | ) | const |
Id unique to ClientMarker's name.
Definition at line 34 of file ClientMarker.cpp.
◆ name_id()
std::string iv::ClientMarker::name_id | ( | ) | const |
Name concatenated with marker_id with space inbetween.
Definition at line 165 of file ClientMarker.cpp.
◆ root_name_id()
std::string iv::ClientMarker::root_name_id | ( | ) | const |
Name concatenated with marker_id with space inbetween.
Definition at line 170 of file ClientMarker.cpp.
◆ print_status() [1/2]
void iv::ClientMarker::print_status | ( | TableDebugView * | view | ) | const |
Definition at line 92 of file ClientMarker.cpp.
◆ print_status() [2/2]
void iv::ClientMarker::print_status | ( | TextDebugView * | view | ) | const |
Definition at line 98 of file ClientMarker.cpp.
◆ print_status_with_inherited() [1/2]
void iv::ClientMarker::print_status_with_inherited | ( | TextDebugView * | view, |
ClientMarker * | emphasize = nullptr |
||
) | const |
Definition at line 110 of file ClientMarker.cpp.
◆ print_status_with_inherited() [2/2]
void iv::ClientMarker::print_status_with_inherited | ( | TreeDebugView * | view, |
ClientMarker * | emphasize = nullptr |
||
) | const |
Definition at line 117 of file ClientMarker.cpp.
◆ print_status_with_related() [1/2]
void iv::ClientMarker::print_status_with_related | ( | TextDebugView * | view | ) | const |
Definition at line 138 of file ClientMarker.cpp.
◆ print_status_with_related() [2/2]
void iv::ClientMarker::print_status_with_related | ( | TreeDebugView * | view, |
TreeDebugView::BoxStyle | box_style = TreeDebugView::BoxStyle::Solid |
||
) | const |
Definition at line 145 of file ClientMarker.cpp.
◆ inheritance_root()
const ClientMarker * iv::ClientMarker::inheritance_root | ( | ) | const |
instance of ClientMarker who has no inheritance child and is descendant of this ClientMarker
Definition at line 54 of file ClientMarker.cpp.
◆ inheritance_child()
const ClientMarker * iv::ClientMarker::inheritance_child | ( | ) | const |
client that directly inherits this client as inheritance parent in this instance (or null if none does it)
Definition at line 62 of file ClientMarker.cpp.
◆ inheritance_parents()
std::unordered_set< ClientMarker const * > iv::ClientMarker::inheritance_parents | ( | ) | const |
Clients directly inherited by this client.
Definition at line 67 of file ClientMarker.cpp.
◆ relation_root()
const ClientMarker * iv::ClientMarker::relation_root | ( | ) | const |
consequencial inheritance and ownership root
Definition at line 72 of file ClientMarker.cpp.
◆ ownership_parent()
const ClientMarker * iv::ClientMarker::ownership_parent | ( | ) | const |
Definition at line 82 of file ClientMarker.cpp.
◆ ownership_children()
std::unordered_set< ClientMarker const * > iv::ClientMarker::ownership_children | ( | ) | const |
Definition at line 87 of file ClientMarker.cpp.
◆ log_process_enabled()
|
finaloverrideprotectedvirtual |
Method log_process will not be called if this returns false. This allows us to avoid performance consuming string building.
Implements iv::Context.
Definition at line 175 of file ClientMarker.cpp.
◆ log_process()
|
finaloverrideprotectedvirtual |
Implements iv::Context.
Definition at line 180 of file ClientMarker.cpp.
The documentation for this class was generated from the following files:
- ivorium_core/Instancing/ClientMarker.hpp
- ivorium_core/Instancing/ClientMarker.cpp
- ivorium_core/Instancing/ClientMarker.inl