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.