forked from GRIFFINCollaboration/CommandLineInterface
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCommandLineInterface.hh
More file actions
60 lines (52 loc) · 2.09 KB
/
CommandLineInterface.hh
File metadata and controls
60 lines (52 loc) · 2.09 KB
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
#ifndef __COMMAND_LINE_INTERFACE
#define __COMMAND_LINE_INTERFACE
#include <stdint.h> //for uint* types
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <vector>
class CommandLineInterface {
public:
CommandLineInterface();
~CommandLineInterface(){};
//main functions to check all flags from command line
bool CheckFlags(int, char**, const bool& Debug = false);
//functions to add flags
void Add(const char*);
void Add(const char*, const char*, bool*);
void Add(const char*, const char*, char**);
void Add(const char*, const char*, std::string*);
void Add(const char*, const char*, short*);
void Add(const char*, const char*, int*);
void Add(const char*, const char*, long long*);
void Add(const char*, const char*, uint8_t*);
void Add(const char*, const char*, uint16_t*);
void Add(const char*, const char*, uint32_t*);
void Add(const char*, const char*, uint64_t*);
//void Add(const char*, const char*, size_t*);
void Add(const char*, const char*, double*, double factor = 1.);
void Add(const char*, const char*, std::vector<char*>*);
void Add(const char*, const char*, std::vector<std::string>*);
void Add(const char*, const char*, std::vector<short>*);
void Add(const char*, const char*, std::vector<int>*);
void Add(const char*, const char*, std::vector<long long>*);
void Add(const char*, const char*, std::vector<uint8_t>*);
void Add(const char*, const char*, std::vector<uint16_t>*);
void Add(const char*, const char*, std::vector<uint32_t>*);
void Add(const char*, const char*, std::vector<uint64_t>*);
//void Add(const char*, const char*, std::vector<size_t>*);
void Add(const char*, const char*, std::vector<double>*, double factor = 1.);
friend std::ostream& operator <<(std::ostream &,const CommandLineInterface &);
private:
bool FlagExists(const char*);
size_t fMaximumFlagLength;
std::vector<std::string> fFlags;
std::vector<void*> fValues;
size_t fMaximumTypeLength;
std::vector<std::string> fTypes;
size_t fMaximumCommentLength;
std::vector<std::string> fComments;
std::vector<double> fFactors;
};
#endif