48 const std::string& name)
49 :
job(name), callback_([
callback](void) -> common::VoidResult {
54 return common::error_info{static_cast<int>(error_code::job_execution_failed), result.value(),
"thread_system"};
58 }), data_callback_(
nullptr)
79 callback_job::callback_job(
80 const std::function<common::VoidResult(
void)>& callback,
81 const std::string& name)
82 :
job(name), callback_(
callback), data_callback_(nullptr)
109 const std::function<std::optional<std::string>(
const std::vector<uint8_t>&)>& data_callback,
110 const std::vector<uint8_t>& data,
const std::string& name)
111 :
job(data, name), callback_(nullptr), data_callback_([data_callback](const
std::vector<uint8_t>& callback_data) -> common::VoidResult {
113 auto
result = data_callback(callback_data);
116 return common::error_info{static_cast<int>(error_code::job_execution_failed), result.value(),
"thread_system"};
143 const std::function<common::VoidResult(
const std::vector<uint8_t>&)>& data_callback,
144 const std::vector<uint8_t>& data,
const std::string& name)
145 :
job(data, name), callback_(nullptr), data_callback_(data_callback)
191 return data_callback_(data_);
Specialized job class that encapsulates user-defined callbacks.
callback_job(const std::function< std::optional< std::string >(void)> &callback, const std::string &name="callback_job")
Constructs a new callback_job instance with a parameterless callback.
~callback_job(void) override
Virtual destructor for proper cleanup in derived classes.
auto do_work(void) -> common::VoidResult override
Executes the appropriate callback function to perform the job's work.
Represents a unit of work (task) to be executed, typically by a job queue.
virtual auto do_work(void) -> common::VoidResult
The core task execution method to be overridden by derived classes.
A template class representing either a value or an error.
bool has_value() const noexcept
Checks if the result contains a value.
@ callback
Call user callback for custom decision.
Core threading foundation of the thread system library.