26#ifndef ROUTER_SRC_HARNESS_INCLUDE_MYSQL_HARNESS_PLUGIN_STATE_H_
27#define ROUTER_SRC_HARNESS_INCLUDE_MYSQL_HARNESS_PLUGIN_STATE_H_
37#include "harness_export.h"
59 virtual std::vector<ObserverId> push_back_observers(
60 const std::vector<ObserverPtr> &array);
62 virtual void remove_observers(
const std::vector<ObserverId> &k);
64 virtual void dispatch_register_waitable(
const PluginName &name);
65 virtual void dispatch_startup(
const PluginName &name);
66 virtual void dispatch_shutdown(
const PluginName &name);
68 virtual Plugins get_running_plugins()
const;
69 virtual Plugins get_loaded_plugins()
const;
75 std::atomic<ObserverId> last_used_id_{k_invalid_id_};
Definition: plugin_state.cc:62
Definition: plugin_state.h:41
Plugins stopped_plugins_
Definition: plugin_state.h:79
std::map< ObserverId, ObserverPtr > MapOfListeners
Definition: plugin_state.h:47
uint32_t ObserverId
Definition: plugin_state.h:45
std::vector< PluginName > Plugins
Definition: plugin_state.h:44
virtual ~PluginState()=default
std::string PluginName
Definition: plugin_state.h:43
std::weak_ptr< PluginStateObserver > ObserverPtr
Definition: plugin_state.h:46
Plugins loaded_plugins_
Definition: plugin_state.h:80
MapOfListeners listeners_
Definition: plugin_state.h:77
std::mutex mutex_guard_listeners_
Definition: plugin_state.h:76
std::shared_ptr< PluginStateObserver > default_observer_
Definition: plugin_state.h:81
Plugins running_plugins_
Definition: plugin_state.h:78
std::string HARNESS_EXPORT reset()
get 'reset attributes' ESC sequence.
Definition: vt100.cc:37