147 lines
5.0 KiB
C
147 lines
5.0 KiB
C
/*
|
|
Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
|
|
|
|
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
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef _NDB_OPTS_H
|
|
#define _NDB_OPTS_H
|
|
|
|
#include <ndb_global.h>
|
|
|
|
#include <my_sys.h> /* loglevel needed by my_getopt.h */
|
|
#include <my_getopt.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef OPTEXPORT
|
|
#define OPT_EXTERN(T,V,I) T V I
|
|
#else
|
|
#define OPT_EXTERN(T,V,I) extern T V
|
|
#endif
|
|
|
|
#define NONE
|
|
OPT_EXTERN(int,opt_ndb_nodeid,NONE);
|
|
OPT_EXTERN(my_bool,opt_ndb_endinfo,=0);
|
|
OPT_EXTERN(my_bool,opt_core,NONE);
|
|
OPT_EXTERN(my_bool,opt_ndb_optimized_node_selection,NONE);
|
|
OPT_EXTERN(const char *,opt_ndb_connectstring,=0);
|
|
|
|
#ifndef DBUG_OFF
|
|
OPT_EXTERN(const char *,opt_debug,= 0);
|
|
#endif
|
|
|
|
#if defined VM_TRACE
|
|
#define OPT_WANT_CORE_DEFAULT 1
|
|
#else
|
|
#define OPT_WANT_CORE_DEFAULT 0
|
|
#endif
|
|
|
|
#define NDB_STD_OPTS_COMMON \
|
|
{ "usage", '?', "Display this help and exit.", \
|
|
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, \
|
|
{ "help", '?', "Display this help and exit.", \
|
|
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, \
|
|
{ "version", 'V', "Output version information and exit.", 0, 0, 0, \
|
|
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, \
|
|
{ "ndb-connectstring", OPT_NDB_CONNECTSTRING, \
|
|
"Set connect string for connecting to ndb_mgmd. " \
|
|
"Syntax: \"[nodeid=<id>;][host=]<hostname>[:<port>]\". " \
|
|
"Overrides specifying entries in NDB_CONNECTSTRING and my.cnf", \
|
|
(uchar**) &opt_ndb_connectstring, (uchar**) &opt_ndb_connectstring, \
|
|
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
|
|
{ "ndb-mgmd-host", NDB_OPT_NOSHORT, \
|
|
"same as --ndb-connectstring", \
|
|
(uchar**) &opt_ndb_connectstring, (uchar**) &opt_ndb_connectstring, 0, \
|
|
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
|
|
{ "ndb-nodeid", NDB_OPT_NOSHORT, \
|
|
"Set node id for this node. Overrides node id specified " \
|
|
"in --ndb-connectstring.", \
|
|
(uchar**) &opt_ndb_nodeid, (uchar**) &opt_ndb_nodeid, 0, \
|
|
GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
|
|
{"ndb-optimized-node-selection", NDB_OPT_NOSHORT,\
|
|
"Select nodes for transactions in a more optimal way",\
|
|
(uchar**) &opt_ndb_optimized_node_selection,\
|
|
(uchar**) &opt_ndb_optimized_node_selection, 0,\
|
|
GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},\
|
|
{ "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",\
|
|
(uchar**) &opt_ndb_connectstring, (uchar**) &opt_ndb_connectstring, \
|
|
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
|
|
{ "core-file", NDB_OPT_NOSHORT, "Write core on errors.",\
|
|
(uchar**) &opt_core, (uchar**) &opt_core, 0,\
|
|
GET_BOOL, NO_ARG, OPT_WANT_CORE_DEFAULT, 0, 0, 0, 0, 0},\
|
|
{"character-sets-dir", NDB_OPT_NOSHORT,\
|
|
"Directory where character sets are.", (uchar**) &charsets_dir,\
|
|
(uchar**) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}\
|
|
|
|
#ifndef DBUG_OFF
|
|
#define NDB_STD_OPTS(prog_name) \
|
|
{ "debug", '#', "Output debug log. Often this is 'd:t:o,filename'.", \
|
|
(uchar**) &opt_debug, (uchar**) &opt_debug, \
|
|
0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0 }, \
|
|
NDB_STD_OPTS_COMMON
|
|
#else
|
|
#define NDB_STD_OPTS(prog_name) NDB_STD_OPTS_COMMON
|
|
#endif
|
|
|
|
void ndb_std_print_version();
|
|
|
|
enum ndb_std_options {
|
|
/*
|
|
--ndb-connectstring=<connectstring> has short form 'c'
|
|
*/
|
|
OPT_NDB_CONNECTSTRING = 'c',
|
|
|
|
/*
|
|
For arguments that have neither a short form option or need
|
|
special processing in 'get_one_option' callback
|
|
*/
|
|
NDB_OPT_NOSHORT = 256,
|
|
|
|
/*
|
|
should always be last in this enum and will be used as the
|
|
start value by programs which use 'ndb_std_get_one_option' and
|
|
need to define their own arguments with special processing
|
|
*/
|
|
NDB_STD_OPTIONS_LAST
|
|
};
|
|
|
|
void ndb_opt_set_usage_funcs(void (*short_usage)(void),
|
|
void (*usage)(void));
|
|
my_bool
|
|
ndb_std_get_one_option(int optid,
|
|
const struct my_option *opt MY_ATTRIBUTE((unused)),
|
|
char *argument);
|
|
|
|
void ndb_usage(void (*usagefunc)(void), const char *load_default_groups[],
|
|
struct my_option *my_long_options);
|
|
void ndb_short_usage_sub(const char* extra);
|
|
|
|
my_bool ndb_is_load_default_arg_separator(const char* arg);
|
|
|
|
/* Read the given [groups] from <conf_file> and return in argc/argv */
|
|
int ndb_load_defaults(const char* conf_file,
|
|
const char** groups,
|
|
int *argc, char*** argv);
|
|
/* Free memory returned in "argv" from ndb_load_defaults() */
|
|
void ndb_free_defaults(char** argv);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /*_NDB_OPTS_H */
|