Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::interfaces::IThreadPool Interface Referenceabstractexport

Extended interface for thread pool implementations. More...

#include <thread_pool_interface.h>

Inheritance diagram for kcenon::common::interfaces::IThreadPool:
Inheritance graph
Collaboration diagram for kcenon::common::interfaces::IThreadPool:
Collaboration graph

Public Member Functions

virtual ~IThreadPool ()=default
 
virtual VoidResult resize (size_t new_size)=0
 Resize the thread pool.
 
virtual size_t min_workers () const
 Get the minimum number of worker threads.
 
virtual size_t max_workers () const
 Get the maximum number of worker threads.
 
virtual VoidResult set_queue_capacity (size_t capacity)=0
 Set the maximum queue capacity.
 
virtual size_t get_queue_capacity () const =0
 Get the current queue capacity.
 
virtual bool is_queue_full () const =0
 Check if the queue is full.
 
virtual size_t clear_pending_tasks ()=0
 Clear all pending tasks.
 
virtual VoidResult start ()=0
 Start the thread pool.
 
virtual VoidResult stop (bool wait_for_completion=true)=0
 Stop the thread pool.
 
virtual VoidResult pause ()=0
 Pause task processing.
 
virtual VoidResult resume ()=0
 Resume task processing.
 
virtual bool is_paused () const =0
 Check if the pool is paused.
 
virtual size_t active_tasks () const =0
 Get the number of active (executing) tasks.
 
virtual size_t idle_workers () const =0
 Get the number of idle workers.
 
virtual size_t completed_tasks () const
 Get total number of completed tasks.
 
virtual size_t failed_tasks () const
 Get total number of failed tasks.
 
virtual ~IThreadPool ()=default
 
virtual VoidResult resize (size_t new_size)=0
 
virtual size_t min_workers () const
 
virtual size_t max_workers () const
 
virtual VoidResult set_queue_capacity (size_t capacity)=0
 
virtual size_t get_queue_capacity () const =0
 
virtual bool is_queue_full () const =0
 
virtual size_t clear_pending_tasks ()=0
 
virtual VoidResult start ()=0
 
virtual VoidResult stop (bool wait_for_completion=true)=0
 
virtual VoidResult pause ()=0
 
virtual VoidResult resume ()=0
 
virtual bool is_paused () const =0
 
virtual size_t active_tasks () const =0
 
virtual size_t idle_workers () const =0
 
virtual size_t completed_tasks () const
 
virtual size_t failed_tasks () const
 
- Public Member Functions inherited from kcenon::common::interfaces::IExecutor
virtual ~IExecutor ()=default
 
virtual Result< std::future< void > > execute (std::unique_ptr< IJob > &&job)=0
 Execute a job with Result-based error handling.
 
virtual Result< std::future< void > > execute_delayed (std::unique_ptr< IJob > &&job, std::chrono::milliseconds delay)=0
 Execute a job with delay.
 
virtual size_t worker_count () const =0
 Get the number of worker threads.
 
virtual bool is_running () const =0
 Check if the executor is running.
 
virtual size_t pending_tasks () const =0
 Get the number of pending tasks.
 
virtual void shutdown (bool wait_for_completion=true)=0
 Shutdown the executor gracefully.
 
virtual ~IExecutor ()=default
 
virtual Result< std::future< void > > execute (std::unique_ptr< IJob > &&job)=0
 Execute a job with Result-based error handling.
 
virtual Result< std::future< void > > execute_delayed (std::unique_ptr< IJob > &&job, std::chrono::milliseconds delay)=0
 Execute a job with delay.
 
virtual size_t worker_count () const =0
 Get the number of worker threads.
 
virtual bool is_running () const =0
 Check if the executor is running.
 
virtual size_t pending_tasks () const =0
 Get the number of pending tasks.
 
virtual void shutdown (bool wait_for_completion=true)=0
 Shutdown the executor gracefully.
 

Detailed Description

Extended interface for thread pool implementations.

This interface extends IExecutor with thread pool-specific functionality such as dynamic resizing, queue capacity management, and fine-grained lifecycle control.

Definition at line 138 of file executor.cppm.

Constructor & Destructor Documentation

◆ ~IThreadPool() [1/2]

virtual kcenon::common::interfaces::IThreadPool::~IThreadPool ( )
virtualdefault

◆ ~IThreadPool() [2/2]

virtual kcenon::common::interfaces::IThreadPool::~IThreadPool ( )
exportvirtualdefault

Member Function Documentation

◆ active_tasks() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::active_tasks ( ) const
pure virtual

Get the number of active (executing) tasks.

Returns
Number of tasks currently being executed

◆ active_tasks() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::active_tasks ( ) const
exportpure virtual

◆ clear_pending_tasks() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::clear_pending_tasks ( )
pure virtual

Clear all pending tasks.

Returns
Number of tasks removed

This operation removes all pending tasks from the queue. Currently executing tasks are not affected.

◆ clear_pending_tasks() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::clear_pending_tasks ( )
exportpure virtual

◆ completed_tasks() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::completed_tasks ( ) const
inlinevirtual

Get total number of completed tasks.

Returns
Cumulative count of completed tasks

Definition at line 151 of file thread_pool_interface.h.

151{ return 0; }

◆ completed_tasks() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::completed_tasks ( ) const
inlineexportvirtual

Definition at line 156 of file executor.cppm.

156{ return 0; }

◆ failed_tasks() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::failed_tasks ( ) const
inlinevirtual

Get total number of failed tasks.

Returns
Cumulative count of failed tasks

Definition at line 157 of file thread_pool_interface.h.

157{ return 0; }

◆ failed_tasks() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::failed_tasks ( ) const
inlineexportvirtual

Definition at line 157 of file executor.cppm.

157{ return 0; }

◆ get_queue_capacity() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::get_queue_capacity ( ) const
pure virtual

Get the current queue capacity.

Returns
Maximum queue capacity (0 = unlimited)

◆ get_queue_capacity() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::get_queue_capacity ( ) const
exportpure virtual

◆ idle_workers() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::idle_workers ( ) const
pure virtual

Get the number of idle workers.

Returns
Number of worker threads waiting for tasks

◆ idle_workers() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::idle_workers ( ) const
exportpure virtual

◆ is_paused() [1/2]

virtual bool kcenon::common::interfaces::IThreadPool::is_paused ( ) const
pure virtual

Check if the pool is paused.

Returns
true if paused, false otherwise

◆ is_paused() [2/2]

virtual bool kcenon::common::interfaces::IThreadPool::is_paused ( ) const
exportpure virtual

◆ is_queue_full() [1/2]

virtual bool kcenon::common::interfaces::IThreadPool::is_queue_full ( ) const
pure virtual

Check if the queue is full.

Returns
true if queue is at capacity, false otherwise

◆ is_queue_full() [2/2]

virtual bool kcenon::common::interfaces::IThreadPool::is_queue_full ( ) const
exportpure virtual

◆ max_workers() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::max_workers ( ) const
inlinevirtual

Get the maximum number of worker threads.

Returns
Maximum worker count (0 = unlimited)

Definition at line 59 of file thread_pool_interface.h.

59{ return 0; }

◆ max_workers() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::max_workers ( ) const
inlineexportvirtual

Definition at line 144 of file executor.cppm.

144{ return 0; }

◆ min_workers() [1/2]

virtual size_t kcenon::common::interfaces::IThreadPool::min_workers ( ) const
inlinevirtual

Get the minimum number of worker threads.

Returns
Minimum worker count

Definition at line 53 of file thread_pool_interface.h.

53{ return 1; }

◆ min_workers() [2/2]

virtual size_t kcenon::common::interfaces::IThreadPool::min_workers ( ) const
inlineexportvirtual

Definition at line 143 of file executor.cppm.

143{ return 1; }

◆ pause() [1/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::pause ( )
pure virtual

Pause task processing.

Returns
VoidResult indicating success or failure

When paused:

  • New tasks can still be enqueued
  • Worker threads will not dequeue new tasks
  • Currently executing tasks continue to completion

◆ pause() [2/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::pause ( )
exportpure virtual

◆ resize() [1/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::resize ( size_t new_size)
pure virtual

Resize the thread pool.

Parameters
new_sizeNew number of worker threads
Returns
VoidResult indicating success or failure

Resizing may fail if:

  • new_size is 0
  • System resources are insufficient
  • Pool is shutting down

◆ resize() [2/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::resize ( size_t new_size)
exportpure virtual

◆ resume() [1/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::resume ( )
pure virtual

Resume task processing.

Returns
VoidResult indicating success or failure

◆ resume() [2/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::resume ( )
exportpure virtual

◆ set_queue_capacity() [1/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::set_queue_capacity ( size_t capacity)
pure virtual

Set the maximum queue capacity.

Parameters
capacityMaximum number of pending tasks (0 = unlimited)
Returns
VoidResult indicating success or failure

◆ set_queue_capacity() [2/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::set_queue_capacity ( size_t capacity)
exportpure virtual

◆ start() [1/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::start ( )
pure virtual

Start the thread pool.

Returns
VoidResult indicating success or failure

Starting an already running pool is a no-op.

◆ start() [2/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::start ( )
exportpure virtual

◆ stop() [1/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::stop ( bool wait_for_completion = true)
pure virtual

Stop the thread pool.

Parameters
wait_for_completionWait for all pending tasks
Returns
VoidResult indicating success or failure

This is an alias for shutdown() for consistency.

◆ stop() [2/2]

virtual VoidResult kcenon::common::interfaces::IThreadPool::stop ( bool wait_for_completion = true)
exportpure virtual

The documentation for this interface was generated from the following files: