|
OpenSDN source code
|
#include <queue_task.h>

Public Types | |
| typedef tbb::concurrent_queue< QueueEntryT > | Queue |
| typedef boost::function< bool(QueueEntryT)> | Callback |
| typedef boost::function< bool(void)> | StartRunnerFunc |
| typedef boost::function< void(bool)> | TaskExitCallback |
| typedef boost::function< bool()> | TaskEntryCallback |
Public Member Functions | |
| WorkQueue (int taskId, int taskInstance, Callback callback, size_t size=kMaxSize, size_t max_iterations=kMaxIterations) | |
| void | Shutdown (bool delete_entries=true) |
| void | ScheduleShutdown (bool delete_entries=true) |
| ~WorkQueue () | |
| void | SetStartRunnerFunc (StartRunnerFunc start_runner_fn) |
| void | SetSize (size_t size) |
| void | SetBounded (bool bounded) |
| bool | GetBounded () const |
| void | SetHighWaterMark (const WaterMarkInfos &high_water) |
| void | SetHighWaterMark (const WaterMarkInfo &hwm_info) |
| void | ResetHighWaterMark () |
| WaterMarkInfos | GetHighWaterMark () const |
| void | SetLowWaterMark (const WaterMarkInfos &low_water) |
| void | SetLowWaterMark (const WaterMarkInfo &lwm_info) |
| void | ResetLowWaterMark () |
| WaterMarkInfos | GetLowWaterMark () const |
| bool | Enqueue (QueueEntryT entry) |
| bool | Dequeue (QueueEntryT *entry) |
| int | GetTaskId () const |
| int | GetTaskInstance () const |
| void | MayBeStartRunner () |
| Callback | GetCallback () const |
| void | SetEntryCallback (TaskEntryCallback on_entry) |
| void | SetExitCallback (TaskExitCallback on_exit) |
| void | set_name (const std::string &name) |
| std::string | Description () const |
| void | set_disable (bool disabled) |
| bool | IsDisabled () const |
| size_t | on_entry_defer_count () const |
| bool | OnEntry () |
| void | OnExit (bool done) |
| bool | IsQueueEmpty () const |
| size_t | Length () const |
| size_t | NumEnqueues () const |
| size_t | NumDequeues () const |
| size_t | NumDrops () const |
| bool | deleted () const |
| uint32_t | task_starts () const |
| size_t | max_queue_len () const |
| bool | measure_busy_time () const |
| void | set_measure_busy_time (bool val) const |
| uint64_t | busy_time () const |
| void | add_busy_time (uint64_t t) |
| void | ClearStats () const |
Static Public Attributes | |
| static const int | kMaxSize = 1024 |
| static const int | kMaxIterations = 32 |
Private Member Functions | |
| bool | DequeueInternal (QueueEntryT *entry) |
| bool | DequeueInternalLocked (QueueEntryT *entry) |
| bool | AreWaterMarksSet () const |
| void | ShutdownLocked (bool delete_entries) |
| size_t | AtomicIncrementQueueCount (QueueEntryT *entry) |
| size_t | AtomicDecrementQueueCount (QueueEntryT *entry) |
| void | ProcessHighWaterMarks (size_t count) |
| void | ProcessLowWaterMarks (size_t count) |
| bool | EnqueueInternal (QueueEntryT entry) |
| bool | EnqueueInternalLocked (QueueEntryT entry) |
| bool | EnqueueBounded (QueueEntryT entry) |
| bool | EnqueueBoundedLocked (QueueEntryT entry) |
| bool | RunnerAbortLocked () |
| bool | RunnerAbort () |
| bool | RunnerDone () |
| DISALLOW_COPY_AND_ASSIGN (WorkQueue) | |
Private Attributes | |
| Queue | queue_ |
| tbb::atomic< size_t > | count_ |
| tbb::mutex | mutex_ |
| bool | running_ |
| int | taskId_ |
| int | taskInstance_ |
| std::string | name_ |
| Callback | callback_ |
| TaskEntryCallback | on_entry_cb_ |
| TaskExitCallback | on_exit_cb_ |
| StartRunnerFunc | start_runner_ |
| QueueTaskRunner< QueueEntryT, WorkQueue< QueueEntryT > > * | current_runner_ |
| size_t | on_entry_defer_count_ |
| tbb::atomic< bool > | disabled_ |
| bool | deleted_ |
| size_t | enqueues_ |
| size_t | dequeues_ |
| size_t | drops_ |
| size_t | max_iterations_ |
| size_t | size_ |
| bool | bounded_ |
| bool | shutdown_scheduled_ |
| bool | delete_entries_on_shutdown_ |
| WaterMarkTuple | watermarks_ |
| tbb::mutex | water_mutex_ |
| uint32_t | task_starts_ |
| size_t | max_queue_len_ |
| uint64_t | busy_time_ |
| bool | measure_busy_time_ |
Friends | |
| class | QueueTaskTest |
| class | QueueTaskShutdownTest |
| class | QueueTaskWaterMarkTest |
| class | QueueTaskRunner< QueueEntryT, WorkQueue< QueueEntryT > > |
Definition at line 109 of file queue_task.h.
| typedef boost::function<bool (QueueEntryT)> WorkQueue< QueueEntryT >::Callback |
Definition at line 114 of file queue_task.h.
| typedef tbb::concurrent_queue<QueueEntryT> WorkQueue< QueueEntryT >::Queue |
Definition at line 113 of file queue_task.h.
| typedef boost::function<bool (void)> WorkQueue< QueueEntryT >::StartRunnerFunc |
Definition at line 115 of file queue_task.h.
| typedef boost::function<bool ()> WorkQueue< QueueEntryT >::TaskEntryCallback |
Definition at line 117 of file queue_task.h.
| typedef boost::function<void (bool)> WorkQueue< QueueEntryT >::TaskExitCallback |
Definition at line 116 of file queue_task.h.
|
inline |
Definition at line 119 of file queue_task.h.
Definition at line 186 of file queue_task.h.
|
inline |
Definition at line 381 of file queue_task.h.
|
inlineprivate |
|
inlineprivate |
Definition at line 435 of file queue_task.h.
|
inlineprivate |
Definition at line 431 of file queue_task.h.
|
inline |
Definition at line 380 of file queue_task.h.
|
inline |
Definition at line 382 of file queue_task.h.
|
inline |
Definition at line 372 of file queue_task.h.
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inline |
Definition at line 310 of file queue_task.h.
|
private |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
Definition at line 204 of file queue_task.h.
Definition at line 295 of file queue_task.h.
|
inline |
|
inline |
|
inline |
Definition at line 273 of file queue_task.h.
|
inline |
Definition at line 277 of file queue_task.h.
|
inline |
Definition at line 328 of file queue_task.h.
|
inline |
Definition at line 352 of file queue_task.h.
|
inline |
Definition at line 356 of file queue_task.h.
|
inline |
Definition at line 377 of file queue_task.h.
|
inline |
|
inline |
Definition at line 378 of file queue_task.h.
|
inline |
Definition at line 364 of file queue_task.h.
|
inline |
Definition at line 368 of file queue_task.h.
|
inline |
Definition at line 360 of file queue_task.h.
|
inline |
Definition at line 332 of file queue_task.h.
|
inline |
Definition at line 336 of file queue_task.h.
|
inline |
Definition at line 346 of file queue_task.h.
|
inlineprivate |
|
inlineprivate |
|
inline |
|
inline |
|
inlineprivate |
|
inlineprivate |
Definition at line 485 of file queue_task.h.
|
inlineprivate |
|
inline |
|
inline |
|
inline |
Definition at line 379 of file queue_task.h.
|
inline |
Definition at line 307 of file queue_task.h.
|
inline |
Definition at line 200 of file queue_task.h.
|
inline |
Definition at line 299 of file queue_task.h.
|
inline |
Definition at line 303 of file queue_task.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 196 of file queue_task.h.
|
inline |
Definition at line 192 of file queue_task.h.
|
inline |
|
inlineprivate |
|
inline |
Definition at line 376 of file queue_task.h.
|
friend |
Definition at line 545 of file queue_task.h.
|
friend |
Definition at line 544 of file queue_task.h.
|
friend |
Definition at line 543 of file queue_task.h.
|
friend |
Definition at line 545 of file queue_task.h.
|
private |
Definition at line 533 of file queue_task.h.
|
mutableprivate |
Definition at line 540 of file queue_task.h.
Definition at line 520 of file queue_task.h.
|
private |
Definition at line 514 of file queue_task.h.
|
private |
Definition at line 524 of file queue_task.h.
|
private |
Definition at line 535 of file queue_task.h.
|
private |
Definition at line 527 of file queue_task.h.
|
mutableprivate |
Definition at line 529 of file queue_task.h.
|
private |
Definition at line 526 of file queue_task.h.
|
private |
Definition at line 530 of file queue_task.h.
|
mutableprivate |
Definition at line 528 of file queue_task.h.
|
static |
Definition at line 112 of file queue_task.h.
|
static |
Definition at line 111 of file queue_task.h.
|
private |
Definition at line 531 of file queue_task.h.
|
mutableprivate |
Definition at line 539 of file queue_task.h.
|
mutableprivate |
Definition at line 541 of file queue_task.h.
|
private |
Definition at line 515 of file queue_task.h.
|
private |
Definition at line 519 of file queue_task.h.
|
private |
Definition at line 521 of file queue_task.h.
|
private |
Definition at line 525 of file queue_task.h.
|
private |
Definition at line 522 of file queue_task.h.
Definition at line 513 of file queue_task.h.
|
private |
Definition at line 516 of file queue_task.h.
|
private |
Definition at line 534 of file queue_task.h.
|
private |
Definition at line 532 of file queue_task.h.
|
private |
Definition at line 523 of file queue_task.h.
|
mutableprivate |
Definition at line 538 of file queue_task.h.
|
private |
Definition at line 517 of file queue_task.h.
|
private |
Definition at line 518 of file queue_task.h.
|
mutableprivate |
Definition at line 537 of file queue_task.h.
|
private |
Definition at line 536 of file queue_task.h.