29 #if !defined(MYSQLPP_CMDLINE_H)
30 #define MYSQLPP_CMDLINE_H
44 class MYSQLPP_EXPORT CommandLineBase
49 typedef std::vector<std::string> ArgumentList;
51 typedef ArgumentList::const_iterator ArgumentListIt;
56 const ArgumentList& extra_args()
const
57 {
return extra_args_; }
61 operator void*()
const
63 return successful_ ?
const_cast<bool*
>(&successful_) : 0;
69 CommandLineBase(
int argc,
char*
const argv[],
const char* opts) :
73 successful_(argc > 0 && argv && opts)
86 const char* option_argument()
const;
88 int option_index()
const;
95 void parse_error(
const char* message = 0);
98 int parse_next()
const;
101 virtual void print_usage()
const = 0;
104 const char* program_name()
const {
return argv_[0]; }
108 bool successful()
const {
return successful_; }
123 extern MYSQLPP_EXPORT
const char*
db_name;
131 CommandLine(
int argc,
char*
const argv[],
132 const char* user = 0,
const char* pass = 0,
133 const char* usage_extra = 0);
139 void print_usage()
const { print_usage(usage_extra_); }
144 void print_usage(
const char* extra)
const;
150 bool dtest_mode()
const {
return dtest_mode_; }
153 const char* pass()
const {
return pass_; }
160 int run_mode()
const {
return run_mode_; }
163 const char* server()
const {
return server_; }
166 const char* user()
const {
return user_; }
176 const char* usage_extra_;
182 namespace ssqlsxlat {
201 void print_usage()
const;
207 const char* input()
const {
return input_; }
213 SourceSink output_sink()
const {
return output_sink_; }
216 const char* output()
const {
return output_; }
219 const char* pass()
const {
return pass_; }
222 const char* server()
const {
return server_; }
225 const char* user()
const {
return user_; }
240 #endif // !defined(MYSQLPP_CMDLINE_H)
virtual void print_usage() const =0
Show a message explaining the program's proper usage.
bool successful() const
Returns true if nothing has gone wrong since calling the ctor.
Definition: cmdline.h:160
@ ss_ssqls1
a C++ file containing an SSQLS v1 declaration
Definition: cmdline.h:217
void parse_error(const char *message=0)
Called by a subclass when encountering a command line parsing error.
Definition: cmdline.cpp:184
CommandLine(int argc, char *const argv[], const char *user=0, const char *pass=0, const char *usage_extra=0)
Constructor.
Definition: cmdline.cpp:204
void finish_parse()
If object is still marked as "successful", save non-option arguments to extra_args_ list....
Definition: cmdline.cpp:130
@ ss_ssqls2
an SSQLS v2 file
Definition: cmdline.h:218
const char * option_argument() const
Accessor for getopt()'s optarg global.
Definition: cmdline.cpp:149
void print_usage() const
Show a message explaining the program's proper usage.
Definition: cmdline.cpp:335
Parses command line arguments and holds the results.
Definition: cmdline.h:70
const char * db_name
Name of examples' DB.
Definition: cmdline.cpp:199
SourceSink
Types of inputs that ssqlsxlat will accept.
Definition: cmdline.h:215
Command line parsing mechanism for ../examples/*.cpp.
Definition: cmdline.h:152
int option_index() const
Accessor for getopt()'s optind global.
Definition: cmdline.cpp:160
std::vector< std::string > ArgumentList
Type for a list of arguments.
Definition: cmdline.h:101
This file includes top-level definitions for use both internal to the library, and outside it....
int parse_next() const
Wrapper for getopt()
Definition: cmdline.cpp:171
const char * program_name() const
Get the file name of the program's executable.
Definition: cmdline.h:156
CommandLine(int argc, char *const argv[])
Constructor.
Definition: cmdline.cpp:265
@ ss_unknown
no known input type given yet
Definition: cmdline.h:216
@ ss_table
an existing DB table schema
Definition: cmdline.h:219
void print_usage() const
Show a message explaining the program's proper usage.
Definition: cmdline.h:165