-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFormatHandler.h
162 lines (133 loc) · 4 KB
/
FormatHandler.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
// -----------------------------------------------------------------------------
// FormatHandler.h FormatHandler.h
// -----------------------------------------------------------------------------
/**
* @file
* @brief This file holds the definition of the @ref FormatHandler class.
* @author Col. Walter E. Kurtz
* @version 2016-11-23
* @copyright GNU General Public License - Version 3.0
*/
// -----------------------------------------------------------------------------
// One-Definition-Rule One-Definition-Rule
// -----------------------------------------------------------------------------
#ifndef FORMATHANDLER_H_INCLUDE_NO1
#define FORMATHANDLER_H_INCLUDE_NO1
// -----------------------------------------------------------------------------
// Includes Includes
// -----------------------------------------------------------------------------
#include <string>
#include "ChainHandler.h"
// -----------------------------------------------------------------------------
// Used namespaces Used namespaces
// -----------------------------------------------------------------------------
using namespace std;
// -------------
// FormatHandler
// -------------
/**
* @brief The best class in the world.
*/
class FormatHandler : public ChainHandler
{
public:
// ---------------------------------------------------------------------------
// Construction Construction
// ---------------------------------------------------------------------------
// -------------
// FormatHandler
// -------------
/**
* @brief The standard-constructor.
*/
FormatHandler(KVHandler* next = 0);
// ---------------------------------------------------------------------------
// Callback handler Callback handler
// ---------------------------------------------------------------------------
// --------------
// OnBeginParsing
// --------------
/**
*
*/
virtual void OnBeginParsing(const string& filename);
// ------
// OnData
// ------
/**
*
*/
virtual void OnData(const string& key, const string& value);
protected:
// ---------------------------------------------------------------------------
// Internal methods Internal methods
// ---------------------------------------------------------------------------
// ------
// format
// ------
/**
*
*/
bool format(const string& text, string& formatted) const;
// --------
// evaluate
// --------
/**
*
*/
bool evaluate( unsigned char function,
const string& quantifier,
const string& argument,
string& result
) const;
// ---------------
// fmtLeadingZeros
// ---------------
/**
*
*/
bool fmtLeadingZeros(unsigned number, const string& in, string& out) const;
// ----------------
// fmtTrailingZeros
// ----------------
/**
*
*/
bool fmtTrailingZeros(unsigned number, const string& in, string& out) const;
// -------------
// fmtCommaSplit
// -------------
/**
*
*/
bool fmtCommaSplit(unsigned number, const string& in, string& out) const;
// -----------------
// fmtSemicolonSplit
// -----------------
/**
*
*/
bool fmtSemicolonSplit(unsigned number, const string& in, string& out) const;
// -------
// fmtTrim
// -------
/**
*
*/
bool fmtTrim(unsigned number, const string& in, string& out) const;
// ----------
// fmtSqueeze
// ----------
/**
*
*/
bool fmtSqueeze(unsigned number, const string& in, string& out) const;
// -----------
// fmtFilename
// -----------
/**
*
*/
bool fmtFilename(unsigned number, const string& in, string& out) const;
};
#endif /* #ifndef FORMATHANDLER_H_INCLUDE_NO1 */