Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
thread_backend.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
14#pragma once
15
18
19#include <chrono>
20#include <cstddef>
21#include <functional>
22
23namespace database
24{
25namespace integrated
26{
27namespace adapters
28{
29namespace backends
30{
31
40{
41public:
42 virtual ~thread_backend() = default;
43
49
55
60 virtual bool is_initialized() const = 0;
61
67 virtual common::VoidResult execute(std::function<void()> task) = 0;
68
72 virtual void wait_for_completion() = 0;
73
79 virtual bool wait_for_completion_timeout(std::chrono::milliseconds timeout) = 0;
80
85 virtual std::size_t worker_count() const = 0;
86
91 virtual std::size_t queue_size() const = 0;
92
97 virtual bool is_idle() const = 0;
98};
99
100} // namespace backends
101} // namespace adapters
102} // namespace integrated
103} // namespace database
Abstract base class for thread pool backends.
virtual bool is_initialized() const =0
Check if backend is initialized.
virtual common::VoidResult shutdown()=0
Shutdown the thread backend gracefully.
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 void wait_for_completion()=0
Wait for all pending tasks to complete.
virtual common::VoidResult execute(std::function< void()> task)=0
Execute a task (fire-and-forget)
virtual std::size_t queue_size() const =0
Get current queue size.
virtual common::VoidResult initialize()=0
Initialize the thread backend.
virtual bool is_idle() const =0
Check if thread pool is idle.
Common Result<T> pattern for integrated database system.
Unified configuration for integrated database system.