|
Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
|
Adapter for job_queue to pool_queue_adapter_interface. More...
#include <job_queue_adapter.h>


Public Member Functions | |
| job_queue_adapter (std::shared_ptr< job_queue > queue) | |
| Construct adapter with existing job_queue. | |
| job_queue_adapter () | |
| Construct adapter with new job_queue. | |
| ~job_queue_adapter () override=default | |
| job_queue_adapter (const job_queue_adapter &)=delete | |
| job_queue_adapter & | operator= (const job_queue_adapter &)=delete |
| job_queue_adapter (job_queue_adapter &&)=default | |
| job_queue_adapter & | operator= (job_queue_adapter &&)=default |
| auto | enqueue (std::unique_ptr< job > &&j) -> common::VoidResult override |
| Enqueue a job. | |
| auto | enqueue_batch (std::vector< std::unique_ptr< job > > &&jobs) -> common::VoidResult override |
| Enqueue a batch of jobs. | |
| auto | dequeue () -> common::Result< std::unique_ptr< job > > override |
| Dequeue a job (blocking) | |
| auto | try_dequeue () -> common::Result< std::unique_ptr< job > > override |
| Try to dequeue a job (non-blocking) | |
| auto | empty () const -> bool override |
| Check if queue is empty. | |
| auto | size () const -> std::size_t override |
| Get queue size. | |
| auto | clear () -> void override |
| Clear all jobs from queue. | |
| auto | stop () -> void override |
| Stop the queue. | |
| auto | is_stopped () const -> bool override |
| Check if queue is stopped. | |
| auto | get_capabilities () const -> queue_capabilities override |
| Get queue capabilities. | |
| auto | to_string () const -> std::string override |
| Get string representation. | |
| auto | get_job_queue () const -> std::shared_ptr< job_queue > override |
| Get the underlying job_queue if this adapter wraps one. | |
| auto | get_scheduler () -> scheduler_interface &override |
| Get the underlying scheduler interface. | |
| auto | get_scheduler () const -> const scheduler_interface &override |
| Get the underlying scheduler interface (const) | |
Public Member Functions inherited from kcenon::thread::pool_queue_adapter_interface | |
| virtual | ~pool_queue_adapter_interface ()=default |
Private Attributes | |
| std::shared_ptr< job_queue > | queue_ |
Adapter for job_queue to pool_queue_adapter_interface.
This adapter wraps a job_queue and provides the unified interface expected by thread_pool. Since job_queue already has all required methods, this adapter simply delegates to the underlying queue.
Definition at line 33 of file job_queue_adapter.h.
|
inlineexplicit |
Construct adapter with existing job_queue.
| queue | Shared pointer to job_queue |
Definition at line 39 of file job_queue_adapter.h.
|
inline |
Construct adapter with new job_queue.
Definition at line 45 of file job_queue_adapter.h.
|
overridedefault |
|
delete |
|
default |
|
inlineoverridevirtual |
Clear all jobs from queue.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 82 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Dequeue a job (blocking)
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 66 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Check if queue is empty.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 74 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Enqueue a job.
| job | Job to enqueue |
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 58 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Enqueue a batch of jobs.
| jobs | Jobs to enqueue |
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 62 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Get queue capabilities.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 94 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Get the underlying job_queue if this adapter wraps one.
This method is provided for backward compatibility with code that needs direct access to job_queue. Returns nullptr for policy_queue adapters.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 102 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Get the underlying scheduler interface.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 106 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Get the underlying scheduler interface (const)
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 110 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Check if queue is stopped.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 90 of file job_queue_adapter.h.
References queue_.
|
delete |
|
default |
|
inlinenodiscardoverridevirtual |
Get queue size.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 78 of file job_queue_adapter.h.
References queue_.
|
inlineoverridevirtual |
Stop the queue.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 86 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Get string representation.
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 98 of file job_queue_adapter.h.
References queue_.
|
inlinenodiscardoverridevirtual |
Try to dequeue a job (non-blocking)
Implements kcenon::thread::pool_queue_adapter_interface.
Definition at line 70 of file job_queue_adapter.h.
References queue_.
|
private |
Definition at line 115 of file job_queue_adapter.h.
Referenced by clear(), dequeue(), empty(), enqueue(), enqueue_batch(), get_capabilities(), get_job_queue(), get_scheduler(), get_scheduler(), is_stopped(), size(), stop(), to_string(), and try_dequeue().