\doxysection{gko::\+log::\+Enable\+Logging\texorpdfstring{$<$}{<} Concrete\+Loggable, Polymorphic\+Base \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1log_1_1EnableLogging}{}\label{classgko_1_1log_1_1EnableLogging}\index{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}}


\doxylink{classgko_1_1log_1_1EnableLogging}{Enable\+Logging} is a mixin which should be inherited by any class which wants to enable logging.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+log/\+logger.\+hpp$>$}



Inheritance diagram for gko::\+log::\+Enable\+Logging\texorpdfstring{$<$}{<} Concrete\+Loggable, Polymorphic\+Base \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1log_1_1EnableLogging__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+log::\+Enable\+Logging\texorpdfstring{$<$}{<} Concrete\+Loggable, Polymorphic\+Base \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=245pt]{classgko_1_1log_1_1EnableLogging__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging_a7b3493c14a37b4d46487d9c636d784f2}{add\+\_\+logger}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} $>$ logger) override
\begin{DoxyCompactList}\small\item\em Adds a new logger to the list of subscribed loggers. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging_aba5317f8a03956a61d770e9b07fc65cc}{remove\+\_\+logger}} (const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} \texorpdfstring{$\ast$}{*}logger) override
\begin{DoxyCompactList}\small\item\em Removes a logger from the list of subscribed loggers. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1log_1_1EnableLogging_a4cf0d29e083259241cd626adcd2c2763}\label{classgko_1_1log_1_1EnableLogging_a4cf0d29e083259241cd626adcd2c2763} 
void {\bfseries remove\+\_\+logger} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} $>$ logger)
\item 
const std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} $>$ $>$ \& \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging_a5e1fc384c289926c16b7f2236ec8c0ec}{get\+\_\+loggers}} () const override
\begin{DoxyCompactList}\small\item\em Returns the vector containing all loggers registered at this object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging_a46d9630d014e4bb094b9e4f7b7bdc5ee}{clear\+\_\+loggers}} () override
\begin{DoxyCompactList}\small\item\em Remove all loggers registered at this object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1log_1_1Loggable}{gko::\+log::\+\+Loggable}}}
\begin{DoxyCompactItemize}
\item 
void {\bfseries remove\+\_\+logger} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} $>$ logger)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Concrete\+Loggable, typename Polymorphic\+Base = Loggable$>$\newline
class gko::\+log::\+\+Enable\+Logging$<$ Concrete\+Loggable, Polymorphic\+Base $>$}
\doxylink{classgko_1_1log_1_1EnableLogging}{Enable\+Logging} 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.


\begin{DoxyTemplParams}{Template Parameters}
{\em Concrete\+Loggable} & the object being logged \+[CRTP parameter]\+\\
\hline
{\em Polymorphic\+Base} & the polymorphic base of this class. By default it is \doxylink{classgko_1_1log_1_1Loggable}{Loggable}. Change it if you want to use a new superclass of {\ttfamily \doxylink{classgko_1_1log_1_1Loggable}{Loggable}} as polymorphic base of this class. \\
\hline
\end{DoxyTemplParams}


\label{doc-func-members}
\Hypertarget{classgko_1_1log_1_1EnableLogging_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1log_1_1EnableLogging_a7b3493c14a37b4d46487d9c636d784f2}\index{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}!add\_logger@{add\_logger}}
\index{add\_logger@{add\_logger}!gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}}
\doxysubsubsection{\texorpdfstring{add\_logger()}{add\_logger()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1EnableLogging_a7b3493c14a37b4d46487d9c636d784f2} 
template$<$typename Concrete\+Loggable, typename Polymorphic\+Base = Loggable$>$ \\
void \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging}{gko::\+log::\+\+Enable\+Logging}}$<$ Concrete\+Loggable, Polymorphic\+Base $>$::\+add\+\_\+logger (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} $>$}]{logger}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Adds a new logger to the list of subscribed loggers. 


\begin{DoxyParams}{Parameters}
{\em logger} & the logger to add \\
\hline
\end{DoxyParams}


Implements \doxymbox{\hyperlink{classgko_1_1log_1_1Loggable_aa2bb887b5ef7e75fa1a30ee1896ed932}{gko::\+log::\+\+Loggable}}.



Reimplemented in \doxymbox{\hyperlink{classgko_1_1Executor_a520dad04b7e74f285ab0956873a5413d}{gko::\+\+Executor}}.

\Hypertarget{classgko_1_1log_1_1EnableLogging_a46d9630d014e4bb094b9e4f7b7bdc5ee}\index{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}!clear\_loggers@{clear\_loggers}}
\index{clear\_loggers@{clear\_loggers}!gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}}
\doxysubsubsection{\texorpdfstring{clear\_loggers()}{clear\_loggers()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1EnableLogging_a46d9630d014e4bb094b9e4f7b7bdc5ee} 
template$<$typename Concrete\+Loggable, typename Polymorphic\+Base = Loggable$>$ \\
void \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging}{gko::\+log::\+\+Enable\+Logging}}$<$ Concrete\+Loggable, Polymorphic\+Base $>$::\+clear\+\_\+loggers (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Remove all loggers registered at this object. 



Implements \doxymbox{\hyperlink{classgko_1_1log_1_1Loggable_a34e5f70e0e243fe376a38b7e319dad73}{gko::\+log::\+\+Loggable}}.

\Hypertarget{classgko_1_1log_1_1EnableLogging_a5e1fc384c289926c16b7f2236ec8c0ec}\index{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}!get\_loggers@{get\_loggers}}
\index{get\_loggers@{get\_loggers}!gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}}
\doxysubsubsection{\texorpdfstring{get\_loggers()}{get\_loggers()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1EnableLogging_a5e1fc384c289926c16b7f2236ec8c0ec} 
template$<$typename Concrete\+Loggable, typename Polymorphic\+Base = Loggable$>$ \\
const std::\+vector$<$ std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} $>$ $>$ \& \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging}{gko::\+log::\+\+Enable\+Logging}}$<$ Concrete\+Loggable, Polymorphic\+Base $>$::\+get\+\_\+loggers (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Returns the vector containing all loggers registered at this object. 

\begin{DoxyReturn}{Returns}
the vector containing all registered loggers. 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1log_1_1Loggable_a22d093701de17afb04a069cd119badf4}{gko::\+log::\+\+Loggable}}.

\Hypertarget{classgko_1_1log_1_1EnableLogging_aba5317f8a03956a61d770e9b07fc65cc}\index{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}!remove\_logger@{remove\_logger}}
\index{remove\_logger@{remove\_logger}!gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$@{gko::log::EnableLogging$<$ ConcreteLoggable, PolymorphicBase $>$}}
\doxysubsubsection{\texorpdfstring{remove\_logger()}{remove\_logger()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1EnableLogging_aba5317f8a03956a61d770e9b07fc65cc} 
template$<$typename Concrete\+Loggable, typename Polymorphic\+Base = Loggable$>$ \\
void \doxymbox{\hyperlink{classgko_1_1log_1_1EnableLogging}{gko::\+log::\+\+Enable\+Logging}}$<$ Concrete\+Loggable, Polymorphic\+Base $>$::\+remove\+\_\+logger (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}} \texorpdfstring{$\ast$}{*}}]{logger}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Removes a logger from the list of subscribed loggers. 


\begin{DoxyParams}{Parameters}
{\em logger} & the logger to remove\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The comparison is done using the logger\textquotesingle{}s object unique identity. Thus, two loggers constructed in the same way are not considered equal. 
\end{DoxyNote}


Implements \doxymbox{\hyperlink{classgko_1_1log_1_1Loggable_a5de4092a74cf04f30f13636d49aaec8b}{gko::\+log::\+\+Loggable}}.



Reimplemented in \doxymbox{\hyperlink{classgko_1_1Executor_af04cdc1a9af6c8efc34ddebb9e7aaf00}{gko::\+\+Executor}}.



The documentation for this class was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+log/\+logger.\+hpp\end{DoxyCompactItemize}
