ndb_opts.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef _NDB_OPTS_H
  14. #define _NDB_OPTS_H
  15. #include <ndb_global.h>
  16. #include <my_sys.h>
  17. #include <my_getopt.h>
  18. #include <mysql_version.h>
  19. #include <ndb_version.h>
  20. #include <ndb_opt_defaults.h>
  21. #define NDB_STD_OPTS_VARS 
  22. const char *opt_connect_str= 0;
  23. my_bool opt_ndb_optimized_node_selection
  24. bool opt_endinfo= 0;
  25. my_bool opt_ndb_shm;
  26. my_bool opt_core;
  27. #define OPT_NDB_CONNECTSTRING 'c'
  28. #if defined VM_TRACE && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
  29. #define OPT_WANT_CORE_DEFAULT 1
  30. #else
  31. #define OPT_WANT_CORE_DEFAULT 0
  32. #endif
  33. #define NDB_STD_OPTS_COMMON 
  34.   { "usage", '?', "Display this help and exit.", 
  35.     0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, 
  36.   { "help", '?', "Display this help and exit.", 
  37.     0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, 
  38.   { "version", 'V', "Output version information and exit.", 0, 0, 0, 
  39.     GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, 
  40.   { "ndb-connectstring", OPT_NDB_CONNECTSTRING, 
  41.     "Set connect string for connecting to ndb_mgmd. " 
  42.     "Syntax: "[nodeid=<id>;][host=]<hostname>[:<port>]". " 
  43.     "Overides specifying entries in NDB_CONNECTSTRING and Ndb.cfg", 
  44.     (gptr*) &opt_connect_str, (gptr*) &opt_connect_str, 0, 
  45.     GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
  46.   { "ndb-shm", OPT_NDB_SHM,
  47.     "Allow optimizing using shared memory connections when available",
  48.     (gptr*) &opt_ndb_shm, (gptr*) &opt_ndb_shm, 0,
  49.     GET_BOOL, NO_ARG, OPT_NDB_SHM_DEFAULT, 0, 0, 0, 0, 0 },
  50.   {"ndb-optimized-node-selection", OPT_NDB_OPTIMIZED_NODE_SELECTION,
  51.     "Select nodes for transactions in a more optimal way",
  52.     (gptr*) &opt_ndb_optimized_node_selection,
  53.     (gptr*) &opt_ndb_optimized_node_selection, 0,
  54.     GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
  55.   { "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",
  56.     (gptr*) &opt_connect_str, (gptr*) &opt_connect_str, 0,
  57.     GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
  58.   { "core-file", OPT_WANT_CORE, "Write core on errors.",
  59.     (gptr*) &opt_core, (gptr*) &opt_core, 0,
  60.     GET_BOOL, NO_ARG, OPT_WANT_CORE_DEFAULT, 0, 0, 0, 0, 0}
  61. #ifndef DBUG_OFF
  62. #define NDB_STD_OPTS(prog_name) 
  63.   { "debug", '#', "Output debug log. Often this is 'd:t:o,filename'.", 
  64.     0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0 }, 
  65.   NDB_STD_OPTS_COMMON
  66. #else
  67. #define NDB_STD_OPTS(prog_name) NDB_STD_OPTS_COMMON
  68. #endif
  69. static void ndb_std_print_version()
  70. {
  71.   printf("MySQL distrib %s, for %s (%s)n",
  72.  MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE);
  73. }
  74. static void usage();
  75. enum ndb_std_options {
  76.   OPT_NDB_SHM= 256,
  77.   OPT_NDB_SHM_SIGNUM,
  78.   OPT_NDB_OPTIMIZED_NODE_SELECTION,
  79.   OPT_WANT_CORE,
  80.   NDB_STD_OPTIONS_LAST /* should always be last in this enum */
  81. };
  82. static my_bool
  83. ndb_std_get_one_option(int optid,
  84.        const struct my_option *opt __attribute__((unused)),
  85.        const char *argument)
  86. {
  87.   switch (optid) {
  88.   case '#':
  89.     if (argument)
  90.     {
  91.       DBUG_PUSH(argument);
  92.     }
  93.     opt_endinfo= 1;
  94.     break;
  95.   case 'V':
  96.     ndb_std_print_version();
  97.     exit(0);
  98.   case '?':
  99.     usage();
  100.     exit(0);
  101.   case OPT_NDB_SHM:
  102.     if (opt_ndb_shm)
  103.     {
  104. #ifndef NDB_SHM_TRANSPORTER
  105.       printf("Warning: binary not compiled with shared memory support,n"
  106.      "Tcp connections will now be used insteadn");
  107.       opt_ndb_shm= 0;
  108. #endif
  109.     }
  110.     break;
  111.   }
  112.   return 0;
  113. }
  114. #endif /*_NDB_OPTS_H */