58 [[nodiscard]]
auto enqueue(std::unique_ptr<job>&& j) -> common::VoidResult
override {
59 return queue_->enqueue(std::move(j));
62 [[nodiscard]]
auto enqueue_batch(std::vector<std::unique_ptr<job>>&& jobs) -> common::VoidResult
override {
63 return queue_->enqueue_batch(std::move(jobs));
66 [[nodiscard]]
auto dequeue() -> common::Result<std::unique_ptr<job>>
override {
70 [[nodiscard]]
auto try_dequeue() -> common::Result<std::unique_ptr<job>>
override {
71 return queue_->try_dequeue();
74 [[nodiscard]]
auto empty() const ->
bool override {
78 [[nodiscard]]
auto size() const ->
std::
size_t override {
86 auto stop() ->
void override {
91 return queue_->is_stopped();
95 return queue_->get_capabilities();
99 return queue_->to_string();
Adapter for job_queue to pool_queue_adapter_interface.
auto get_scheduler() const -> const scheduler_interface &override
Get the underlying scheduler interface (const)
job_queue_adapter & operator=(const job_queue_adapter &)=delete
job_queue_adapter & operator=(job_queue_adapter &&)=default
auto empty() const -> bool override
Check if queue is empty.
auto enqueue(std::unique_ptr< job > &&j) -> common::VoidResult override
Enqueue a job.
auto clear() -> void override
Clear all jobs from queue.
auto try_dequeue() -> common::Result< std::unique_ptr< job > > override
Try to dequeue a job (non-blocking)
auto get_scheduler() -> scheduler_interface &override
Get the underlying scheduler interface.
job_queue_adapter()
Construct adapter with new job_queue.
job_queue_adapter(const job_queue_adapter &)=delete
auto get_job_queue() const -> std::shared_ptr< job_queue > override
Get the underlying job_queue if this adapter wraps one.
auto dequeue() -> common::Result< std::unique_ptr< job > > override
Dequeue a job (blocking)
std::shared_ptr< job_queue > queue_
job_queue_adapter(std::shared_ptr< job_queue > queue)
Construct adapter with existing job_queue.
job_queue_adapter(job_queue_adapter &&)=default
~job_queue_adapter() override=default
auto is_stopped() const -> bool override
Check if queue is stopped.
auto enqueue_batch(std::vector< std::unique_ptr< job > > &&jobs) -> common::VoidResult override
Enqueue a batch of jobs.
auto to_string() const -> std::string override
Get string representation.
auto get_capabilities() const -> queue_capabilities override
Get queue capabilities.
auto stop() -> void override
Stop the queue.
auto size() const -> std::size_t override
Get queue size.
A thread-safe job queue for managing and dispatching work items.
Abstract interface for queue adapters used by thread_pool.
Scheduler interface for queuing and retrieving jobs.
Thread-safe FIFO job queue with optional bounded size.
Core threading foundation of the thread system library.
Abstract interface for queue adapters used by thread_pool.
Runtime-queryable queue capabilities descriptor.