Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::integrated::adapters::backends::thread_backend Class Referenceabstract

Abstract base class for thread pool backends. More...

#include <thread_backend.h>

Inheritance diagram for database::integrated::adapters::backends::thread_backend:
Inheritance graph
Collaboration diagram for database::integrated::adapters::backends::thread_backend:
Collaboration graph

Public Member Functions

virtual ~thread_backend ()=default
 
virtual common::VoidResult initialize ()=0
 Initialize the thread backend.
 
virtual common::VoidResult shutdown ()=0
 Shutdown the thread backend gracefully.
 
virtual bool is_initialized () const =0
 Check if backend is initialized.
 
virtual common::VoidResult execute (std::function< void()> task)=0
 Execute a task (fire-and-forget)
 
virtual void wait_for_completion ()=0
 Wait for all pending tasks to complete.
 
virtual bool wait_for_completion_timeout (std::chrono::milliseconds timeout)=0
 Wait for completion with timeout.
 
virtual std::size_t worker_count () const =0
 Get number of worker threads.
 
virtual std::size_t queue_size () const =0
 Get current queue size.
 
virtual bool is_idle () const =0
 Check if thread pool is idle.
 

Detailed Description

Abstract base class for thread pool backends.

All thread backends (system, fallback, null) must implement this interface. This enables runtime polymorphism and eliminates conditional compilation.

Definition at line 39 of file thread_backend.h.

Constructor & Destructor Documentation

◆ ~thread_backend()

virtual database::integrated::adapters::backends::thread_backend::~thread_backend ( )
virtualdefault

Member Function Documentation

◆ execute()

virtual common::VoidResult database::integrated::adapters::backends::thread_backend::execute ( std::function< void()> task)
pure virtual

Execute a task (fire-and-forget)

Parameters
taskTask to execute
Returns
VoidResult::ok() on successful submission

Implemented in database::integrated::adapters::backends::fallback_thread_backend, and database::integrated::adapters::backends::null_thread_backend.

◆ initialize()

virtual common::VoidResult database::integrated::adapters::backends::thread_backend::initialize ( )
pure virtual

Initialize the thread backend.

Returns
VoidResult::ok() on success, error on failure

Implemented in database::integrated::adapters::backends::fallback_thread_backend, and database::integrated::adapters::backends::null_thread_backend.

◆ is_idle()

virtual bool database::integrated::adapters::backends::thread_backend::is_idle ( ) const
pure virtual

Check if thread pool is idle.

Returns
true if no pending or running tasks

Implemented in database::integrated::adapters::backends::fallback_thread_backend, and database::integrated::adapters::backends::null_thread_backend.

◆ is_initialized()

virtual bool database::integrated::adapters::backends::thread_backend::is_initialized ( ) const
pure virtual

Check if backend is initialized.

Returns
true if initialized and ready

Implemented in database::integrated::adapters::backends::fallback_thread_backend, and database::integrated::adapters::backends::null_thread_backend.

◆ queue_size()

virtual std::size_t database::integrated::adapters::backends::thread_backend::queue_size ( ) const
pure virtual

◆ shutdown()

virtual common::VoidResult database::integrated::adapters::backends::thread_backend::shutdown ( )
pure virtual

Shutdown the thread backend gracefully.

Returns
VoidResult::ok() on success, error on failure

Implemented in database::integrated::adapters::backends::fallback_thread_backend, and database::integrated::adapters::backends::null_thread_backend.

◆ wait_for_completion()

virtual void database::integrated::adapters::backends::thread_backend::wait_for_completion ( )
pure virtual

◆ wait_for_completion_timeout()

virtual bool database::integrated::adapters::backends::thread_backend::wait_for_completion_timeout ( std::chrono::milliseconds timeout)
pure virtual

Wait for completion with timeout.

Parameters
timeoutMaximum wait time
Returns
true if all tasks completed, false if timeout

Implemented in database::integrated::adapters::backends::fallback_thread_backend, and database::integrated::adapters::backends::null_thread_backend.

◆ worker_count()

virtual std::size_t database::integrated::adapters::backends::thread_backend::worker_count ( ) const
pure virtual

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