|
Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
|
A job wrapper that integrates circuit breaker protection. More...
#include <protected_job.h>


Public Member Functions | |
| protected_job (std::unique_ptr< job > inner, std::shared_ptr< circuit_breaker > cb) | |
| Constructs a protected job wrapper. | |
| ~protected_job () override | |
| Destructor. | |
| auto | do_work () -> common::VoidResult override |
| Executes the wrapped job with circuit breaker protection. | |
| auto | get_name () const -> std::string |
| Gets the name of this job. | |
Public Member Functions inherited from kcenon::thread::job | |
| auto | get_job_id () const -> std::uint64_t |
| Gets the unique ID of this job. | |
| auto | get_enqueue_time () const -> std::chrono::steady_clock::time_point |
| Gets the time when this job was created (enqueued). | |
| job (const std::string &name="job") | |
Constructs a new job with an optional human-readable name. | |
| job (const std::vector< uint8_t > &data, const std::string &name="data_job") | |
Constructs a new job with associated raw byte data and a name. | |
| virtual | ~job (void) |
Virtual destructor for the job class to allow proper cleanup in derived classes. | |
| auto | get_name (void) const -> std::string |
| Retrieves the name of this job. | |
| virtual auto | set_cancellation_token (const cancellation_token &token) -> void |
| Sets a cancellation token that can be used to cancel the job. | |
| virtual auto | get_cancellation_token () const -> cancellation_token |
| Gets the cancellation token associated with this job. | |
| virtual auto | set_job_queue (const std::shared_ptr< job_queue > &job_queue) -> void |
Associates this job with a specific job_queue. | |
| virtual auto | get_job_queue (void) const -> std::shared_ptr< job_queue > |
Retrieves the job_queue associated with this job, if any. | |
| virtual auto | to_string (void) const -> std::string |
| Provides a string representation of the job for logging or debugging. | |
| auto | with_on_complete (std::function< void(common::VoidResult)> callback) -> job & |
| Attaches a completion callback to this job. | |
| auto | with_on_error (std::function< void(const common::error_info &)> callback) -> job & |
| Attaches an error callback to this job. | |
| auto | with_priority (job_priority priority) -> job & |
| Sets the priority level for this job. | |
| auto | with_cancellation (const cancellation_token &token) -> job & |
| Attaches a cancellation token to this job via composition. | |
| auto | with_retry (const retry_policy &policy) -> job & |
| Attaches a retry policy to this job. | |
| auto | with_timeout (std::chrono::milliseconds timeout) -> job & |
| Sets a timeout for job execution. | |
| auto | get_priority () const -> job_priority |
| Gets the priority level of this job. | |
| auto | get_retry_policy () const -> std::optional< retry_policy > |
| Gets the retry policy of this job. | |
| auto | get_timeout () const -> std::optional< std::chrono::milliseconds > |
| Gets the timeout duration for this job. | |
| auto | has_explicit_cancellation () const -> bool |
| Checks if this job has an explicit cancellation set via composition. | |
| auto | has_components () const -> bool |
| Checks if this job has any composed components. | |
Private Attributes | |
| std::unique_ptr< job > | inner_ |
| std::shared_ptr< circuit_breaker > | cb_ |
Additional Inherited Members | |
Protected Member Functions inherited from kcenon::thread::job | |
| auto | invoke_callbacks (const common::VoidResult &result) -> void |
| Invokes the completion callbacks if they are set. | |
Protected Attributes inherited from kcenon::thread::job | |
| std::string | name_ |
| The descriptive name of the job, used primarily for identification and logging. | |
| std::vector< uint8_t > | data_ |
| An optional container of raw byte data that may be used by the job. | |
| std::weak_ptr< job_queue > | job_queue_ |
A weak reference to the job_queue that currently manages this job. | |
| cancellation_token | cancellation_token_ |
| The cancellation token associated with this job. | |
A job wrapper that integrates circuit breaker protection.
This class wraps an existing job and adds circuit breaker protection. Before executing the inner job, it checks if the circuit breaker allows the request. After execution, it records success or failure.
Thread safety depends on the wrapped job. The circuit breaker integration itself is thread-safe.
Definition at line 46 of file protected_job.h.
| kcenon::thread::protected_job::protected_job | ( | std::unique_ptr< job > | inner, |
| std::shared_ptr< circuit_breaker > | cb ) |
Constructs a protected job wrapper.
| inner | The job to wrap and protect. |
| cb | The circuit breaker to use for protection. |
Definition at line 12 of file protected_job.cpp.
|
overridedefault |
Destructor.
|
overridevirtual |
Executes the wrapped job with circuit breaker protection.
Behavior:
Reimplemented from kcenon::thread::job.
Definition at line 23 of file protected_job.cpp.
References kcenon::thread::result< T >::is_ok(), kcenon::thread::job_invalid, kcenon::thread::make_error_result(), and kcenon::thread::operation_canceled.

|
nodiscard |
Gets the name of this job.
Definition at line 67 of file protected_job.cpp.
References kcenon::thread::job::get_name().

|
private |
Definition at line 83 of file protected_job.h.
|
private |
Definition at line 82 of file protected_job.h.