Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::sinks::basic_sink_frontend Class Referenceabstract

A base class for a logging sink frontend. More...

#include <basic_sink_frontend.hpp>

Inheritance diagram for boost::sinks::basic_sink_frontend:
Collaboration diagram for boost::sinks::basic_sink_frontend:

Public Types

typedef
base_type::exception_handler_type 
exception_handler_type
 An exception handler type. More...
 

Public Member Functions

 basic_sink_frontend (bool cross_thread)
 Initializing constructor. More...
 
template<typename FunT >
void set_filter (FunT const &filter)
 The method sets sink-specific filter functional object. More...
 
void reset_filter ()
 The method resets the filter. More...
 
template<typename FunT >
void set_exception_handler (FunT const &handler)
 The method sets an exception handler function. More...
 
void reset_exception_handler ()
 The method resets the exception handler function. More...
 
bool will_consume (attribute_value_set const &attrs)
 The method returns true if no filter is set or the attribute values pass the filter. More...
 
virtual void consume (record_view const &rec)=0
 The method puts logging record to the sink. More...
 
virtual bool try_consume (record_view const &rec)
 The method attempts to put logging record to the sink. More...
 
virtual void flush ()=0
 The method performs flushing of any internal buffers that may hold log records. More...
 
bool is_cross_thread () const BOOST_NOEXCEPT
 The method indicates that the sink passes log records between different threads. More...
 

Protected Types

typedef
boost::log::aux::light_rw_mutex 
mutex_type
 Mutex type. More...
 

Protected Member Functions

mutex_typefrontend_mutex () const
 Returns reference to the frontend mutex. More...
 
exception_handler_typeexception_handler ()
 Returns reference to the exception handler. More...
 
exception_handler_type const & exception_handler () const
 Returns reference to the exception handler. More...
 
template<typename BackendMutexT , typename BackendT >
void feed_record (record_view const &rec, BackendMutexT &backend_mutex, BackendT &backend)
 Feeds log record to the backend. More...
 
template<typename BackendMutexT , typename BackendT >
bool try_feed_record (record_view const &rec, BackendMutexT &backend_mutex, BackendT &backend)
 Attempts to feeds log record to the backend, does not block if backend_mutex is locked. More...
 
template<typename BackendMutexT , typename BackendT >
void flush_backend (BackendMutexT &backend_mutex, BackendT &backend)
 Flushes record buffers in the backend, if one supports it. More...
 

Detailed Description

A base class for a logging sink frontend.

Member Typedef Documentation

typedef boost::log::aux::light_rw_mutex boost::sinks::basic_sink_frontend::mutex_type
protected

Mutex type.

Constructor & Destructor Documentation

boost::sinks::basic_sink_frontend::basic_sink_frontend ( bool  cross_thread)
inlineexplicit

Initializing constructor.

Parameters
cross_threadThe flag indicates whether the sink passes log records between different threads

Member Function Documentation

virtual void boost::sinks::sink::consume ( record_view const &  rec)
pure virtualinherited

The method puts logging record to the sink.

Parameters
recLogging record to consume

Implemented in boost::sinks::asynchronous_sink< SinkBackendT, QueueingStrategyT >, boost::sinks::synchronous_sink< SinkBackendT >, and boost::sinks::unlocked_sink< SinkBackendT >.

exception_handler_type& boost::sinks::basic_sink_frontend::exception_handler ( )
inlineprotected

Returns reference to the exception handler.

exception_handler_type const& boost::sinks::basic_sink_frontend::exception_handler ( ) const
inlineprotected

Returns reference to the exception handler.

template<typename BackendMutexT , typename BackendT >
void boost::sinks::basic_sink_frontend::feed_record ( record_view const &  rec,
BackendMutexT &  backend_mutex,
BackendT &  backend 
)
inlineprotected
virtual void boost::sinks::sink::flush ( )
pure virtualinherited

The method performs flushing of any internal buffers that may hold log records.

The method may take considerable time to complete and may block both the calling thread and threads attempting to put new records into the sink while this call is in progress.

Implemented in boost::sinks::asynchronous_sink< SinkBackendT, QueueingStrategyT >, boost::sinks::synchronous_sink< SinkBackendT >, and boost::sinks::unlocked_sink< SinkBackendT >.

template<typename BackendMutexT , typename BackendT >
void boost::sinks::basic_sink_frontend::flush_backend ( BackendMutexT &  backend_mutex,
BackendT &  backend 
)
inlineprotected

Flushes record buffers in the backend, if one supports it.

Referenced by boost::sinks::unlocked_sink< SinkBackendT >::flush(), and boost::sinks::synchronous_sink< SinkBackendT >::flush().

bool boost::sinks::sink::is_cross_thread ( ) const
inlineinherited

The method indicates that the sink passes log records between different threads.

This information is needed by the logging core to detach log records from all thread-specific resources before passing it to the sink.

void boost::sinks::basic_sink_frontend::reset_exception_handler ( )
inline

The method resets the exception handler function.

References boost::lock().

void boost::sinks::basic_sink_frontend::reset_filter ( )
inline

The method resets the filter.

References boost::lock(), and boost::filter::reset().

template<typename FunT >
void boost::sinks::basic_sink_frontend::set_exception_handler ( FunT const &  handler)
inline

The method sets an exception handler function.

References boost::lock().

template<typename FunT >
void boost::sinks::basic_sink_frontend::set_filter ( FunT const &  filter)
inline

The method sets sink-specific filter functional object.

References boost::lock().

virtual bool boost::sinks::sink::try_consume ( record_view const &  rec)
inlinevirtualinherited

The method attempts to put logging record to the sink.

The method may be used by the core in order to determine the most efficient order of sinks to feed records to in case of heavy contention. Sink implementations may implement try/backoff logic in order to improve overall logging throughput.

Parameters
recLogging record to consume
Returns
true, if the record was consumed, false, if not.

Reimplemented in boost::sinks::asynchronous_sink< SinkBackendT, QueueingStrategyT >, and boost::sinks::synchronous_sink< SinkBackendT >.

template<typename BackendMutexT , typename BackendT >
bool boost::sinks::basic_sink_frontend::try_feed_record ( record_view const &  rec,
BackendMutexT &  backend_mutex,
BackendT &  backend 
)
inlineprotected

Attempts to feeds log record to the backend, does not block if backend_mutex is locked.

References boost::empty(), boost::lock(), boost::unique_lock< Mutex >::owns_lock(), boost::unique_lock< Mutex >::swap(), and boost::try_to_lock.

Referenced by boost::sinks::synchronous_sink< SinkBackendT >::try_consume().

bool boost::sinks::basic_sink_frontend::will_consume ( attribute_value_set const &  attrs)
inlinevirtual

The method returns true if no filter is set or the attribute values pass the filter.

Parameters
attrsA set of attribute values of a logging record

Implements boost::sinks::sink.

References boost::lock().


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