EnableLogging< ConcreteLoggable, PolymorphicBase > Class Template Reference

EnableLogging&lt; ConcreteLoggable, PolymorphicBase &gt; Class Template Reference#

Reference API: gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase > Class Template Reference
Reference API
gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase > Class Template Reference

#include <ginkgo/core/log/logger.hpp>

Inheritance diagram for gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase >:
[legend]

Public Member Functions

void add_logger (std::shared_ptr< const Logger > logger) override
 
void remove_logger (const Logger *logger) override
 
void remove_logger (ptr_param< const Logger > logger)
 
const std::vector< std::shared_ptr< const Logger > > & get_loggers () const override
 
void clear_loggers () override
 
- Public Member Functions inherited from gko::log::Loggable
void remove_logger (ptr_param< const Logger > logger)
 

Protected Member Functions

template<size_type Event, typename... Params>
void log (Params &&... params) const
 

Protected Attributes

std::vector< std::shared_ptr< const Logger > > loggers_
 

Detailed Description

template<typename ConcreteLoggable, typename PolymorphicBase = Loggable>
class gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase >

EnableLogging is a mixin which should be inherited by any class which wants to enable logging. All the received events are passed to the loggers this class contains.

Template Parameters
ConcreteLoggablethe object being logged [CRTP parameter]
PolymorphicBasethe polymorphic base of this class. By default it is Loggable. Change it if you want to use a new superclass of Loggable as polymorphic base of this class.

Member Function Documentation

◆ add_logger()

template<typename ConcreteLoggable , typename PolymorphicBase = Loggable>
void gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase >::add_logger ( std::shared_ptr< const Logger logger)
inlineoverridevirtual

Adds a new logger to the list of subscribed loggers.

Parameters
loggerthe logger to add

Implements gko::log::Loggable.

Reimplemented in gko::Executor.

◆ clear_loggers()

template<typename ConcreteLoggable , typename PolymorphicBase = Loggable>
void gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase >::clear_loggers ( )
inlineoverridevirtual

Remove all loggers registered at this object.

Implements gko::log::Loggable.

◆ get_loggers()

template<typename ConcreteLoggable , typename PolymorphicBase = Loggable>
const std::vector< std::shared_ptr< const Logger > > & gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase >::get_loggers ( ) const
inlineoverridevirtual

Returns the vector containing all loggers registered at this object.

Returns
the vector containing all registered loggers.

Implements gko::log::Loggable.

◆ remove_logger()

template<typename ConcreteLoggable , typename PolymorphicBase = Loggable>
void gko::log::EnableLogging< ConcreteLoggable, PolymorphicBase >::remove_logger ( const Logger logger)
inlineoverridevirtual

Removes a logger from the list of subscribed loggers.

Parameters
loggerthe logger to remove
Note
The comparison is done using the logger's object unique identity. Thus, two loggers constructed in the same way are not considered equal.

Implements gko::log::Loggable.

Reimplemented in gko::Executor.


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