Bounded ordering log record queueing strategy. More...
#include <bounded_ordering_queue.hpp>
Public Member Functions | |
posix_time::time_duration | get_ordering_window () const |
Returns ordering window size specified during initialization. More... | |
Static Public Member Functions | |
static posix_time::time_duration | get_default_ordering_window () |
Returns default ordering window size. More... | |
Protected Member Functions | |
template<typename ArgsT > | |
bounded_ordering_queue (ArgsT const &args) | |
Initializing constructor. More... | |
void | enqueue (record_view const &rec) |
Enqueues log record to the queue. More... | |
bool | try_enqueue (record_view const &rec) |
Attempts to enqueue log record to the queue. More... | |
bool | try_dequeue_ready (record_view &rec) |
Attempts to dequeue a log record ready for processing from the queue, does not block if the queue is empty. More... | |
bool | try_dequeue (record_view &rec) |
Attempts to dequeue log record from the queue, does not block if the queue is empty. More... | |
bool | dequeue_ready (record_view &rec) |
Dequeues log record from the queue, blocks if the queue is empty. More... | |
void | interrupt_dequeue () |
Wakes a thread possibly blocked in the dequeue method. More... | |
Bounded ordering log record queueing strategy.
The bounded_ordering_queue
class is intended to be used with the asynchronous_sink
frontend as a log record queueing strategy.
This strategy provides the following properties to the record queueing mechanism:
MaxQueueSizeV
template parameter. OverflowStrategyT
template parameter to handle the situation. The library provides overflow handling strategies for most common cases: drop_on_overflow
will silently discard the log record, and block_on_overflow
will put the enqueueing thread to wait until there is space in the queue. OrderT
template parameter.
|
inlineexplicitprotected |
Initializing constructor.
|
inlineprotected |
Dequeues log record from the queue, blocks if the queue is empty.
References boost::geometry::difference(), boost::lock(), boost::size(), and boost::condition_variable::wait().
|
inlineprotected |
Enqueues log record to the queue.
References boost::lock(), boost::condition_variable::notify_one(), and boost::size().
|
inlinestatic |
Returns default ordering window size.
The default window size is specific to the operating system thread scheduling mechanism.
|
inline |
Returns ordering window size specified during initialization.
|
inlineprotected |
Wakes a thread possibly blocked in the dequeue
method.
References boost::lock(), and boost::condition_variable::notify_one().
|
inlineprotected |
Attempts to dequeue log record from the queue, does not block if the queue is empty.
References boost::lock(), and boost::size().
|
inlineprotected |
Attempts to dequeue a log record ready for processing from the queue, does not block if the queue is empty.
References boost::lock(), and boost::size().
|
inlineprotected |
Attempts to enqueue log record to the queue.
References boost::lock(), boost::condition_variable::notify_one(), boost::unique_lock< Mutex >::owns_lock(), boost::size(), and boost::try_to_lock.