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.