63 virtual std::string
get_name()
const {
return "unnamed_job"; }
93 std::unique_ptr<IJob>&& job,
94 std::chrono::milliseconds delay) = 0;
114 virtual void shutdown(
bool wait_for_completion =
true) = 0;
160using ThreadPoolFactory = std::function<std::shared_ptr<IThreadPool>(
size_t worker_count)>;
167 size_t worker_count,
size_t queue_capacity = 0) = 0;
Result type for error handling with member function support.
Standard interface for database operations.
virtual ~IDatabase()=default
Interface for modules that provide executor implementations.
virtual ~IExecutorProvider()=default
virtual std::shared_ptr< IExecutor > create_executor(size_t worker_count)=0
virtual std::shared_ptr< IExecutor > get_executor()=0
Abstract interface for task execution systems.
virtual void shutdown(bool wait_for_completion=true)=0
Shutdown the executor gracefully.
virtual size_t worker_count() const =0
Get the number of worker threads.
virtual Result< std::future< void > > execute_delayed(std::unique_ptr< IJob > &&job, std::chrono::milliseconds delay)=0
Execute a job with delay.
virtual bool is_running() const =0
Check if the executor is running.
virtual Result< std::future< void > > execute(std::unique_ptr< IJob > &&job)=0
Execute a job with Result-based error handling.
virtual size_t pending_tasks() const =0
Get the number of pending tasks.
virtual ~IExecutor()=default
Abstract job interface for task execution.
virtual VoidResult execute()=0
Execute the job.
virtual int get_priority() const
Get the priority of the job.
virtual std::string get_name() const
Get the name of the job.
Interface for modules that provide thread pool implementations.
virtual ~IThreadPoolProvider()=default
virtual Result< std::shared_ptr< IThreadPool > > create_thread_pool(size_t worker_count, size_t queue_capacity=0)=0
virtual std::shared_ptr< IThreadPool > get_thread_pool()=0
Extended interface for thread pool implementations.
virtual bool is_queue_full() const =0
virtual ~IThreadPool()=default
virtual VoidResult resume()=0
virtual size_t completed_tasks() const
virtual size_t idle_workers() const =0
virtual size_t active_tasks() const =0
virtual size_t clear_pending_tasks()=0
virtual size_t min_workers() const
virtual size_t failed_tasks() const
virtual VoidResult stop(bool wait_for_completion=true)=0
virtual size_t get_queue_capacity() const =0
virtual VoidResult start()=0
virtual size_t max_workers() const
virtual VoidResult pause()=0
virtual VoidResult set_queue_capacity(size_t capacity)=0
virtual VoidResult resize(size_t new_size)=0
virtual bool is_paused() const =0
std::function< std::shared_ptr< IExecutor >()> ExecutorFactory
Factory function type for creating executor instances.
std::function< std::shared_ptr< IThreadPool >(size_t worker_count)> ThreadPoolFactory
Factory function type for creating thread pool instances.
Standard error information used by Result<T>.