C++ Utilities 5.27.0
Useful C++ classes and routines such as argument parser, IO and conversion utilities
Loading...
Searching...
No Matches
argumentparserprivate.h
Go to the documentation of this file.
1#ifndef APPLICATION_UTILITIES_ARGUMENTPARSER_PRIVATE_H
2#define APPLICATION_UTILITIES_ARGUMENTPARSER_PRIVATE_H
3
4#include "./argumentparser.h"
6
7namespace CppUtilities {
8
10public:
11 ArgumentReader(ArgumentParser &parser, const char *const *argv, const char *const *end, bool completionMode = false);
12 ArgumentReader &reset(const char *const *argv, const char *const *end);
13 bool read();
14 bool read(ArgumentVector &args);
15
21 std::size_t index;
23 const char *const *argv;
25 const char *const *end;
29 const char *const *lastArgDenotation;
31 const char *argDenotation;
33 unsigned char argDenotationType;
36};
37
38class Wrapper;
39
40std::ostream &operator<<(std::ostream &os, const Wrapper &wrapper);
41
42class Wrapper {
43 friend std::ostream &operator<<(std::ostream &os, const Wrapper &wrapper);
44
45public:
46 Wrapper(const char *str, Indentation currentIndentation = Indentation());
47
48private:
49 const char *const m_str;
50 Indentation m_indentation;
51};
52
53inline Wrapper::Wrapper(const char *str, Indentation currentIndentation)
54 : m_str(str)
55 , m_indentation(currentIndentation)
56{
57}
58
59} // namespace CppUtilities
60
61#endif // APPLICATION_UTILITIES_ARGUMENTPARSER_PRIVATE_H
The ArgumentParser class provides a means for handling command line arguments.
The ArgumentReader class internally encapsulates the process of reading command line arguments.
const char *const * lastArgDenotation
Points to the element in argv where lastArg was encountered. Unspecified if lastArg is not set.
const char * argDenotation
The currently processed abbreviation denotation (should be substring of one of the args in argv)....
ArgumentVector & args
The Argument instances to store the results. Sub arguments of args are considered as well.
const char *const * argv
Points to the first argument denotation and will be incremented when a denotation has been processed.
Argument * lastArg
The last Argument instance which could be detected. Set to nullptr in the initial call....
bool completionMode
Whether completion mode is enabled. In this case reading args will be continued even if an denotation...
unsigned char argDenotationType
The type of the currently processed abbreviation denotation. Unspecified if argDenotation is not set.
std::size_t index
An index which is incremented when an argument is encountered (the current index is stored in the occ...
ArgumentParser & parser
The associated ArgumentParser instance.
const char *const * end
Points to the end of the argv array.
The Argument class is a wrapper for command line argument information.
The Indentation class allows printing indentation conveniently, eg.
The Wrapper class is internally used print text which might needs to be wrapped preserving the indent...
friend std::ostream & operator<<(std::ostream &os, const Wrapper &wrapper)
Wrapper(const char *str, Indentation currentIndentation=Indentation())
#define CPP_UTILITIES_EXPORT
Marks the symbol to be exported by the c++utilities library.
Definition global.h:14
Contains all utilities provides by the c++utilities library.
std::vector< Argument * > ArgumentVector
CPP_UTILITIES_EXPORT std::ostream & operator<<(std::ostream &out, Indentation indentation)