diff options
Diffstat (limited to 'sql/wsrep_server_state.h')
-rw-r--r-- | sql/wsrep_server_state.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sql/wsrep_server_state.h b/sql/wsrep_server_state.h index 8759f7a9d84..d169e5b219d 100644 --- a/sql/wsrep_server_state.h +++ b/sql/wsrep_server_state.h @@ -1,4 +1,4 @@ -/* Copyright 2018 Codership Oy <info@codership.com> +/* Copyright 2018-2021 Codership Oy <info@codership.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@ /* wsrep-lib */ #include "wsrep/server_state.hpp" #include "wsrep/provider.hpp" +#include "wsrep/provider_options.hpp" /* implementation */ #include "wsrep_server_service.h" @@ -34,6 +35,10 @@ public: const std::string& working_dir, const wsrep::gtid& initial_position, int max_protocol_version); + static int init_provider(const std::string& provider, + const std::string& options); + static int init_options(); + static void deinit_provider(); static void destroy(); static Wsrep_server_state& instance() @@ -51,6 +56,11 @@ public: return instance().provider(); } + static wsrep::provider_options* get_options() + { + return m_options.get(); + } + static bool has_capability(int capability) { return (get_provider().capabilities() & capability); @@ -77,7 +87,11 @@ private: Wsrep_server_service m_service; static wsrep::provider::services m_provider_services; static Wsrep_server_state* m_instance; - + static std::unique_ptr<wsrep::provider_options> m_options; + // Sysvars for provider plugin. We keep these here because + // they are allocated dynamically and must be freed at some + // point during shutdown (after the plugin is deinitialized). + static std::vector<st_mysql_sys_var *> m_sysvars; }; #endif // WSREP_SERVER_STATE_H |