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"
57 virtual std::vector<ObserverId> push_back_observers(
58 const std::vector<ObserverPtr> &array);
60 virtual void remove_observers(
const std::vector<ObserverId> &k);
62 virtual void dispatch_register_waitable(
const PluginName &name);
63 virtual void dispatch_startup(
const PluginName &name);
64 virtual void dispatch_shutdown(
const PluginName &name);
66 virtual Plugins get_running_plugins()
const;
67 virtual Plugins get_loaded_plugins()
const;
73 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:77
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:78
MapOfListeners listeners_
Definition: plugin_state.h:75
std::mutex mutex_guard_listeners_
Definition: plugin_state.h:74
std::shared_ptr< PluginStateObserver > default_observer_
Definition: plugin_state.h:79
Plugins running_plugins_
Definition: plugin_state.h:76