#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
 
ClientMarkeroperator= (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
 
Instanceinstance () 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 ClientMarkerinheritance_root () const
 instance of ClientMarker who has no inheritance child and is descendant of this ClientMarker More...
 
const ClientMarkerinheritance_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 ClientMarkerrelation_root () const
 consequencial inheritance and ownership root More...
 
const ClientMarkerownership_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]

template<class ClientType >
iv::ClientMarker::ClientMarker ( Instance inst,
ClientType *  client,
const char *  name 
)

Definition at line 5 of file ClientMarker.inl.

◆ ClientMarker() [2/3]

template<class ClientType >
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]

iv::ClientMarker::ClientMarker ( ClientMarker const &  )
delete

Member Function Documentation

◆ operator=()

ClientMarker& iv::ClientMarker::operator= ( ClientMarker const &  )
delete

◆ inherits()

template<class ... Rest>
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()

template<class ... Rest>
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()

template<class TypedClient >
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()

bool iv::ClientMarker::log_process_enabled ( LogId  id) const
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()

void iv::ClientMarker::log_process ( SrcInfo const &  info,
LogId  id,
std::string const &  message 
) const
finaloverrideprotectedvirtual

Implements iv::Context.

Definition at line 180 of file ClientMarker.cpp.


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