diff options
Diffstat (limited to 'server-tools/instance-manager/options.h')
-rw-r--r-- | server-tools/instance-manager/options.h | 99 |
1 files changed, 72 insertions, 27 deletions
diff --git a/server-tools/instance-manager/options.h b/server-tools/instance-manager/options.h index f7186bb4ff4..5d4df51faae 100644 --- a/server-tools/instance-manager/options.h +++ b/server-tools/instance-manager/options.h @@ -17,47 +17,92 @@ #define INCLUDES_MYSQL_INSTANCE_MANAGER_OPTIONS_H /* - Options - all possible options for the instance manager grouped in one - struct. + Options - all possible command-line options for the Instance Manager grouped + in one struct. */ + #include <my_global.h> #if defined(__GNUC__) && defined(USE_PRAGMA_INTERFACE) #pragma interface #endif +class User_management_cmd; + struct Options { -#ifdef __WIN__ - static char install_as_service; - static char remove_service; - static char stand_alone; + /* + NOTE: handle_options() expects value of my_bool type for GET_BOOL + accessor (i.e. bool must not be used). + */ + + struct User_management + { + static User_management_cmd *cmd; + + static char *user_name; + static char *password; + }; + + struct Main + { + /* this is not an option parsed by handle_options(). */ + static bool is_forced_default_file; + + static const char *pid_file_name; +#ifndef __WIN__ + static const char *socket_file_name; +#endif + static const char *password_file_name; + static const char *default_mysqld_path; + static uint monitoring_interval; + static uint port_number; + static const char *bind_address; + static const char *config_file; + static my_bool mysqld_safe_compatible; + }; + +#ifndef DBUG_OFF + struct Debug + { + static const char *config_str; + }; +#endif + +#ifndef __WIN__ + + struct Daemon + { + static my_bool run_as_service; + static const char *log_file_name; + static const char *user; + static const char *angel_pid_file_name; + }; + #else - static char run_as_service; /* handle_options doesn't support bool */ - static const char *user; - static const char *angel_pid_file_name; - static const char *socket_file_name; + + struct Service + { + static my_bool install_as_service; + static my_bool remove_service; + static my_bool stand_alone; + }; + #endif - static bool is_forced_default_file; - static const char *log_file_name; - static const char *pid_file_name; - static const char *password_file_name; - static const char *default_mysqld_path; - /* the option which should be passed to process_default_option_files */ - static uint monitoring_interval; - static uint port_number; - static const char *bind_address; - static const char *config_file; +public: + /* Array of paths to be passed to my_search_option_files() later */ + static const char **default_directories; + + static int load(int argc, char **argv); + static void cleanup(); + +private: + Options(); /* Deny instantiation of this class. */ + +private: /* argv pointer returned by load_defaults() to be used by free_defaults() */ static char **saved_argv; - - int load(int argc, char **argv); - Options() {} - void cleanup(); -#ifdef __WIN__ - int setup_windows_defaults(); -#endif }; #endif // INCLUDES_MYSQL_INSTANCE_MANAGER_OPTIONS_H |