WvStreams
Main Page
Modules
Classes
Files
File List
File Members
include
wvargs.h
1
/* -*- Mode: C++ -*-
2
* Copyright (C) 2004-2005 Net Integration Technologies, Inc.
3
*
4
* WvStreams interface for command-line argument processing
5
*/
6
#ifndef __WVARGS_H
7
#define __WVARGS_H
8
9
#include "wvstring.h"
10
#include "wvstringlist.h"
11
#include "wvtr1.h"
12
13
class
WvArgsOption
;
14
class
WvArgsData
;
15
61
class
WvArgs
62
{
63
public
:
64
69
typedef
wv::function<bool(void*)>
NoArgCallback
;
74
typedef
wv::function<bool(WvStringParm, void*)>
ArgCallback
;
75
76
private
:
77
78
WvArgsData
*data;
79
WvString
args_doc;
80
WvString
version;
81
WvString
email;
82
WvString
header;
83
WvString
footer;
84
85
public
:
86
87
WvArgs
();
88
~
WvArgs
();
89
96
bool
process
(
int
argc,
char
**argv,
97
WvStringList
*remaining_args = NULL);
98
100
void
set_version
(
WvStringParm
version);
101
103
void
set_email
(
WvStringParm
email);
104
106
void
set_help_header
(
WvStringParm
header);
107
109
void
set_help_footer
(
WvStringParm
footer);
110
115
void
print_usage
(
int
argc,
char
**argv);
119
void
print_help
(
int
argc,
char
**argv);
120
134
void
add_set_bool_option
(
char
short_option,
WvStringParm
long_option,
135
WvStringParm
desc,
bool
&val);
149
void
add_reset_bool_option
(
char
short_option,
WvStringParm
long_option,
150
WvStringParm
desc,
bool
&val);
164
void
add_flip_bool_option
(
char
short_option,
WvStringParm
long_option,
165
WvStringParm
desc,
bool
&val);
166
180
void
add_option
(
char
short_option,
WvStringParm
long_option,
181
WvStringParm
desc,
WvStringParm
arg_desc,
int
&val);
195
void
add_option
(
char
short_option,
WvStringParm
long_option,
196
WvStringParm
desc,
WvStringParm
arg_desc,
long
&val);
210
void
add_option
(
char
short_option,
WvStringParm
long_option,
211
WvStringParm
desc,
WvStringParm
arg_desc,
float
&val);
225
void
add_option
(
char
short_option,
WvStringParm
long_option,
226
WvStringParm
desc,
WvStringParm
arg_desc,
double
&val);
240
void
add_option
(
char
short_option,
WvStringParm
long_option,
241
WvStringParm
desc,
WvStringParm
arg_desc,
WvString
&val);
256
void
add_option
(
char
short_option,
WvStringParm
long_option,
257
WvStringParm
desc,
WvStringParm
arg_desc,
258
WvStringList
&val);
273
void
add_option
(
char
short_option,
WvStringParm
long_option,
274
WvStringParm
desc,
NoArgCallback
cb,
void
*ud = NULL);
291
void
add_option
(
char
short_option,
WvStringParm
long_option,
292
WvStringParm
desc,
WvStringParm
arg_desc,
293
ArgCallback
cb,
void
*ud = NULL);
294
301
void
add_required_arg
(
WvStringParm
desc,
bool
multiple =
false
);
307
void
add_optional_arg
(
WvStringParm
desc,
bool
multiple =
false
);
308
315
void
remove_option
(
char
short_option);
322
void
remove_option
(
WvStringParm
long_option);
323
327
void
remove_all_options
();
331
void
zap
()
332
{
333
remove_all_options
();
334
}
335
338
enum
flags_t
339
{
340
NO_EXIT_ON_ERRORS,
// Do not exit when an error is encountered
341
FLAGS_SIZE
// Number of flags that exist
342
};
343
347
bool
get_flag
(
const
flags_t
flag)
const
;
348
void
set_flag(
const
flags_t
flag,
const
bool
value);
349
350
};
351
352
#endif // __WVARGS_H
Generated on Wed Aug 28 2019 23:57:14 for WvStreams by
1.8.3.1