PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::integration::thread_pool_interface Class Referenceabstract

#include <thread_pool_interface.h>

Inheritance diagram for kcenon::pacs::integration::thread_pool_interface:
Inheritance graph
Collaboration diagram for kcenon::pacs::integration::thread_pool_interface:
Collaboration graph

Public Member Functions

virtual ~thread_pool_interface ()=default
 Virtual destructor for proper polymorphic destruction.
 
virtual auto start () -> bool=0
 Start the thread pool.
 
virtual auto is_running () const noexcept -> bool=0
 Check if the thread pool is running.
 
virtual void shutdown (bool wait_for_completion=true)=0
 Shutdown the thread pool.
 
virtual auto submit (std::function< void()> task) -> std::future< void >=0
 Submit a task for execution.
 
virtual auto submit_with_priority (job_priority priority, std::function< void()> task) -> std::future< void >=0
 Submit a task with a specific priority level.
 
virtual void submit_fire_and_forget (std::function< void()> task)=0
 Submit a task without waiting for completion.
 
virtual auto get_thread_count () const -> std::size_t=0
 Get the current number of worker threads.
 
virtual auto get_pending_task_count () const -> std::size_t=0
 Get the number of pending tasks in the queue.
 
virtual auto get_idle_worker_count () const -> std::size_t=0
 Get the number of idle workers.
 

Protected Member Functions

 thread_pool_interface ()=default
 Protected default constructor for derived classes.
 
 thread_pool_interface (const thread_pool_interface &)=delete
 Non-copyable.
 
thread_pool_interfaceoperator= (const thread_pool_interface &)=delete
 
 thread_pool_interface (thread_pool_interface &&)=default
 Movable.
 
thread_pool_interfaceoperator= (thread_pool_interface &&)=default
 

Detailed Description

Definition at line 112 of file thread_pool_interface.h.

Constructor & Destructor Documentation

◆ ~thread_pool_interface()

virtual kcenon::pacs::integration::thread_pool_interface::~thread_pool_interface ( )
virtualdefault

Virtual destructor for proper polymorphic destruction.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ thread_pool_interface() [1/3]

kcenon::pacs::integration::thread_pool_interface::thread_pool_interface ( )
protecteddefault

◆ thread_pool_interface() [2/3]

kcenon::pacs::integration::thread_pool_interface::thread_pool_interface ( const thread_pool_interface & )
protecteddelete

Non-copyable.

◆ thread_pool_interface() [3/3]

kcenon::pacs::integration::thread_pool_interface::thread_pool_interface ( thread_pool_interface && )
protecteddefault

Movable.

Member Function Documentation

◆ get_idle_worker_count()

virtual auto kcenon::pacs::integration::thread_pool_interface::get_idle_worker_count ( ) const -> std::size_t
nodiscardpure virtual

Get the number of idle workers.

Returns
Number of workers not currently processing tasks

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ get_pending_task_count()

virtual auto kcenon::pacs::integration::thread_pool_interface::get_pending_task_count ( ) const -> std::size_t
nodiscardpure virtual

Get the number of pending tasks in the queue.

Returns
Number of tasks waiting to be processed

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ get_thread_count()

virtual auto kcenon::pacs::integration::thread_pool_interface::get_thread_count ( ) const -> std::size_t
nodiscardpure virtual

Get the current number of worker threads.

Returns
Number of active worker threads

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ is_running()

virtual auto kcenon::pacs::integration::thread_pool_interface::is_running ( ) const -> bool
nodiscardpure virtualnoexcept

Check if the thread pool is running.

Returns
true if the pool is active and accepting tasks

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ operator=() [1/2]

thread_pool_interface & kcenon::pacs::integration::thread_pool_interface::operator= ( const thread_pool_interface & )
protecteddelete

◆ operator=() [2/2]

thread_pool_interface & kcenon::pacs::integration::thread_pool_interface::operator= ( thread_pool_interface && )
protecteddefault

◆ shutdown()

virtual void kcenon::pacs::integration::thread_pool_interface::shutdown ( bool wait_for_completion = true)
pure virtual

Shutdown the thread pool.

Stops accepting new tasks and optionally waits for pending tasks.

Parameters
wait_for_completionIf true, waits for all pending tasks to complete

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ start()

virtual auto kcenon::pacs::integration::thread_pool_interface::start ( ) -> bool
nodiscardpure virtual

Start the thread pool.

Initializes worker threads and begins accepting tasks. Safe to call multiple times; subsequent calls are no-ops if running.

Returns
true if started successfully or already running, false otherwise

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ submit()

virtual auto kcenon::pacs::integration::thread_pool_interface::submit ( std::function< void()> task) -> std::future< void >
nodiscardpure virtual

Submit a task for execution.

Submits a void-returning task to the thread pool for asynchronous execution with normal priority.

Parameters
taskThe task to execute (must be callable with no arguments)
Returns
Future that completes when the task finishes
Exceptions
std::runtime_errorif pool is not running

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ submit_fire_and_forget()

virtual void kcenon::pacs::integration::thread_pool_interface::submit_fire_and_forget ( std::function< void()> task)
pure virtual

Submit a task without waiting for completion.

Fire-and-forget submission for tasks where the result is not needed. Errors are logged but not propagated.

Parameters
taskThe task to execute

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

◆ submit_with_priority()

virtual auto kcenon::pacs::integration::thread_pool_interface::submit_with_priority ( job_priority priority,
std::function< void()> task ) -> std::future< void >
nodiscardpure virtual

Submit a task with a specific priority level.

Jobs with higher priority (lower enum value) are processed first.

Parameters
priorityThe priority level for this task
taskThe task to execute
Returns
Future that completes when the task finishes
Exceptions
std::runtime_errorif pool is not running

Implemented in kcenon::pacs::integration::thread_pool_adapter.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/integration/thread_pool_interface.h.

The documentation for this class was generated from the following file: