blob: bcbbc4cf6ce4fec4dec52d3d4cadfedd9bd1d005 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/*
* Copyright Andrey Semashev 2007 - 2015.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
/*!
* \file drop_on_overflow.hpp
* \author Andrey Semashev
* \date 04.01.2012
*
* The header contains implementation of \c drop_on_overflow strategy for handling
* queue overflows in bounded queues for the asynchronous sink frontend.
*/
#ifndef BOOST_LOG_SINKS_DROP_ON_OVERFLOW_HPP_INCLUDED_
#define BOOST_LOG_SINKS_DROP_ON_OVERFLOW_HPP_INCLUDED_
#include <boost/log/detail/config.hpp>
#include <boost/log/core/record_view.hpp>
#include <boost/log/detail/header.hpp>
#ifdef BOOST_HAS_PRAGMA_ONCE
#pragma once
#endif
namespace boost {
BOOST_LOG_OPEN_NAMESPACE
namespace sinks {
/*!
* \brief Log record dropping strategy
*
* This strategy will cause log records to be discarded in case of
* queue overflow in bounded asynchronous sinks. It should not be used
* if losing log records is not acceptable.
*/
class drop_on_overflow
{
#ifndef BOOST_LOG_DOXYGEN_PASS
public:
/*!
* This method is called by the queue when overflow is detected.
*
* \retval true Attempt to enqueue the record again.
* \retval false Discard the record.
*/
template< typename LockT >
static bool on_overflow(record_view const&, LockT&)
{
return false;
}
/*!
* This method is called by the queue when there appears a free space.
*/
static void on_queue_space_available()
{
}
/*!
* This method is called by the queue to interrupt any possible waits in \c on_overflow.
*/
static void interrupt()
{
}
#endif // BOOST_LOG_DOXYGEN_PASS
};
} // namespace sinks
BOOST_LOG_CLOSE_NAMESPACE // namespace log
} // namespace boost
#include <boost/log/detail/footer.hpp>
#endif // BOOST_LOG_SINKS_DROP_ON_OVERFLOW_HPP_INCLUDED_
|