25#ifndef MYSQL_HARNESS_PROCESS_STATE_COMPONENT_INCLUDED
26#define MYSQL_HARNESS_PROCESS_STATE_COMPONENT_INCLUDED
32#include "harness_export.h"
43 enum class Reason { NONE, REQUESTED, FATAL_ERROR };
45 [[nodiscard]] std::string
message()
const {
return message_; }
46 void message(
const std::string &msg) { message_ = msg; }
96 void request_application_shutdown(
98 const std::string &msg = {});
110 on_shutdown_request_callbacks_.push_back(callback);
120 return shutdown_pending_;
Monitor can be waited for.
Definition: monitor.h:61
manages the state of the process.
Definition: process_state_component.h:73
void register_on_shutdown_request_callback(on_shutdown_request_callback callback)
register a callback that will get exectued whenever the component gets the shutdown request
Definition: process_state_component.h:108
std::vector< on_shutdown_request_callback > on_shutdown_request_callbacks_
Definition: process_state_component.h:128
void operator=(ProcessStateComponent &&)=delete
WaitableMonitor< ShutdownPending > & shutdown_pending()
pending shutdown state.
Definition: process_state_component.h:119
ProcessStateComponent(ProcessStateComponent const &)=delete
std::function< void(ShutdownPending::Reason reason, const std::string &msg)> on_shutdown_request_callback
Definition: process_state_component.h:101
ProcessStateComponent()=default
ProcessStateComponent(ProcessStateComponent &&)=delete
void operator=(ProcessStateComponent const &)=delete
std::string key_type
Definition: process_state_component.h:77
Definition: process_state_component.h:38
void message(const std::string &msg)
Definition: process_state_component.h:46
Reason
Reason for shutdown.
Definition: process_state_component.h:43
std::string message_
Definition: process_state_component.h:53
std::string message() const
Definition: process_state_component.h:45
void reason(Reason r)
Definition: process_state_component.h:49
Reason reason() const
Definition: process_state_component.h:48
@ NONE
Definition: base.h:44
std::string HARNESS_EXPORT to_string(const ShutdownPending::Reason &reason)
Definition: process_state_component.cc:59
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:85