-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcli.h
111 lines (90 loc) · 2.75 KB
/
cli.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// -----------------------------------------------------------------------------
// cli.h cli.h
// -----------------------------------------------------------------------------
/**
* @file
* @brief This file holds the definition of the @ref cli class.
* @author Col. Walter E. Kurtz
* @version 2016-11-25
* @copyright GNU General Public License - Version 3.0
*/
// -----------------------------------------------------------------------------
// One-Definition-Rule One-Definition-Rule
// -----------------------------------------------------------------------------
#ifndef CLI_H_INCLUDE_NO1
#define CLI_H_INCLUDE_NO1
// -----------------------------------------------------------------------------
// Includes Includes
// -----------------------------------------------------------------------------
#include <string>
// ---
// cli
// ---
/**
* @brief This class defines the command-line interface.
*/
class cli
{
public:
// ---------------------------------------------------------------------------
// Settings Settings
// ---------------------------------------------------------------------------
// operations that are mutually exclusive
enum
{
DEFAULT,
SHOW_HELP,
SHOW_VERSION,
SHOW_KEYS,
SHOW_COMMANDS,
SHOW_OVERVIEW_BRIEF,
SHOW_OVERVIEW_VERBOSE,
SHOW_DBASE_LINES,
CREATE_SCRIPTS
}
operation;
// where to get the filenames from
enum
{
PARAM,
STDIN
}
source;
/// the name of the file to parse
std::string filename;
// ---------------------------------------------------------------------------
// Construction Construction
// ---------------------------------------------------------------------------
// ---
// cli
// ---
/**
* @brief The standard-constructor.
*/
cli();
// ---------------------------------------------------------------------------
// Handling Handling
// ---------------------------------------------------------------------------
// ----
// help
// ----
/**
* @brief This method shows the syntax of the command-line interface.
*/
void help(const std::string& xname) const;
// -------
// version
// -------
/**
* @brief This method shows the program's version.
*/
void version() const;
// -----
// parse
// -----
/**
* @brief This Method uses getopt() to parse the given arguments.
*/
bool parse(int argc, char** argv);
};
#endif /* #ifndef CLI_H_INCLUDE_NO1 */