~drizzle-trunk/drizzle/development

1410.4.2 by Djellel E. Difallah
removing my
1
/* Copyright (C) 2002-2004 MySQL AB
2
3
   This program is free software; you can redistribute it and/or modify
4
   it under the terms of the GNU General Public License as published by
5
   the Free Software Foundation; version 2 of the License.
6
7
   This program is distributed in the hope that it will be useful,
8
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
   GNU General Public License for more details.
11
12
   You should have received a copy of the GNU General Public License
13
   along with this program; if not, write to the Free Software
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1410.4.2 by Djellel E. Difallah
removing my
15
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
16
#pragma once
1410.4.2 by Djellel E. Difallah
removing my
17
2252.1.3 by Olaf van der Spek
Common fwd
18
#include <drizzled/common_fwd.h>
19
20
namespace drizzled {
1410.4.2 by Djellel E. Difallah
removing my
21
22
#define GET_NO_ARG     1
23
#define GET_BOOL       2
24
#define GET_INT        3
25
#define GET_UINT       4
26
#define GET_LONG       5
27
#define GET_UINT32     6
28
#define GET_LL         7
29
#define GET_ULL        8
30
#define GET_STR        9
31
#define GET_STR_ALLOC 10
32
#define GET_SIZE      15
33
#define GET_UINT64    16
34
#define GET_ULONG_IS_FAIL 17
35
36
#define GET_TYPE_MASK	 127
37
38
enum loglevel {
39
   ERROR_LEVEL,
40
   WARNING_LEVEL,
41
   INFORMATION_LEVEL
42
};
43
44
enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
45
46
struct option
47
{
48
  const char *name;                     /* Name of the option */
49
  int        id;                        /* unique id or short option */
50
  const char *comment;                  /* option comment, for autom. --help */
51
  char      **value;                   /* The variable value */
2318.2.5 by Olaf van der Spek
Set unused u_max_value to NULL
52
  void      **u_max_value_unused;             /* The user def. max variable value */
2252.1.3 by Olaf van der Spek
Common fwd
53
  TYPELIB *typelib;           /* Pointer to possible values */
1410.4.2 by Djellel E. Difallah
removing my
54
  uint32_t     var_type;
2318.2.6 by Olaf van der Spek
Refactor
55
  get_opt_arg_type arg_type;
1410.4.2 by Djellel E. Difallah
removing my
56
  int64_t   def_value;                 /* Default value */
57
  int64_t   min_value;                 /* Min allowed value */
58
  int64_t   max_value;                 /* Max allowed value */
59
  int64_t   sub_size;                  /* Subtract this from given value */
2318.2.6 by Olaf van der Spek
Refactor
60
  int       block_size;                /* Value should be a mult. of this */
61
  void*     app_type_unused;
1410.4.2 by Djellel E. Difallah
removing my
62
};
63
64
65
typedef int (* my_get_one_option) (int, const struct option *, char * );
66
typedef void (* my_error_reporter) (enum loglevel level, const char *format, ... );
67
typedef char ** (*getopt_get_addr_func)(const char *, uint32_t, const struct option *);
68
2318.2.7 by Olaf van der Spek
Refactor
69
extern int handle_options (int *argc, char ***argv, const option*, my_get_one_option);
1410.4.2 by Djellel E. Difallah
removing my
70
extern void my_cleanup_options(const struct option *options);
71
extern void my_print_help(const struct option *options);
72
extern void my_print_variables(const struct option *options);
73
2318.2.7 by Olaf van der Spek
Refactor
74
uint64_t getopt_ull_limit_value(uint64_t num, const option&, bool* fix);
75
int64_t getopt_ll_limit_value(int64_t, const option&, bool* fix);
1410.4.2 by Djellel E. Difallah
removing my
76
bool getopt_compare_strings(const char *s, const char *t, uint32_t length);
77
78
} /* namespace drizzled */
79
80