NetBurner 3.5.6
PDF Version
argparse.h
1
#ifndef __ARGPARSE_H
2
#define __ARGPARSE_H
3
/*NB_REVISION*/
4
5
/*NB_COPYRIGHT*/
6
7
#include <stdint.h>
8
#include <basictypes.h>
9
#include <
buffers.h
>
10
11
class
ArgParser {
12
public
:
13
struct
ParseVal {
14
bool
isFlag: 1;
15
bool
isOptional: 1;
16
bool
isPositional: 1;
17
ParseVal(
bool
isFlag =
false
,
bool
isOptional =
true
,
bool
isPositional =
false
);
18
virtual
int
Parse(
char
*arg,
int
argLen) = 0;
19
};
20
21
struct
Parse_int :
public
ParseVal {
22
int
val;
23
Parse_int(
int
defVal,
bool
isOptional =
true
);
24
virtual
int
Parse(
char
*arg,
int
argLen);
25
};
26
27
struct
Parse_uint :
public
ParseVal {
28
unsigned
val;
29
int
base;
30
Parse_uint(
unsigned
defVal,
int
base = 0,
bool
isOptional =
true
);
31
virtual
int
Parse(
char
*arg,
int
argLen);
32
};
33
34
struct
Parse_string :
public
ParseVal {
35
char
*buf;
36
unsigned
bufLen;
37
bool
parsed;
38
Parse_string(
char
*buf,
unsigned
bufLen,
bool
isOptional =
true
);
39
virtual
int
Parse(
char
*arg,
int
argLen);
40
};
41
42
struct
Parse_bool :
public
ParseVal {
43
bool
val;
44
Parse_bool(
bool
defVal,
bool
isOptional =
true
);
45
virtual
int
Parse(
char
*arg,
int
argLen);
46
};
47
48
struct
Parse_flag :
public
ParseVal {
49
bool
val;
50
char
flagChar;
51
Parse_flag(
char
flagChar);
52
virtual
int
Parse(
char
*arg,
int
argLen);
53
};
54
private
:
55
uint8_t bNumUnordered;
56
uint8_t bNumPositional;
57
ParseVal **parseList;
58
public
:
59
ArgParser(uint8_t num_unordered, uint8_t num_positional, ParseVal **parseArgs);
60
61
static
int
GetArg(
fifo_buffer_storage
&args,
char
*argBuf,
int
bufLen);
62
63
int
Parse(
fifo_buffer_storage
&args,
char
*argBuf,
int
bufLen);
64
};
65
66
#endif
/* ----- #ifndef __ARGPARSE_H ----- */
buffers.h
NetBurner Buffers API.
fifo_buffer_storage
FIFO buffer storage using linked pool buffers.
Definition
buffers.h:443