ALib C++ Framework
by
Library Version: 2605 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
variables.cpp
1#if !DOXYGEN
2
3// FormatMetaInfo
4DOX_MARKER([DOX_VARIABLES_DEFINETYPE2])
6
7void VMeta_FormatMetaInfo::imPort( VDATA* data, Configuration&,
8 const StringEscaper& escaper, const String& src ) {
9 auto& rec = data->As<alib::lox::textlogger::FormatMetaInfo>();
11 StringVectorMA results(la);
12 escaper.UnescapeTokens(results, src, A_CHAR(",") );
13
14 rec.Format .Reset(results.TryGet(0));
15 rec.VerbosityError .Reset(results.TryGet(1));
16 rec.VerbosityWarning.Reset(results.TryGet(2));
17 rec.VerbosityInfo .Reset(results.TryGet(3));
18 rec.VerbosityVerbose.Reset(results.TryGet(4));
19 rec.MsgSuffix .Reset(results.TryGet(5));
20}
21
22void VMeta_FormatMetaInfo::exPort( VDATA* data, Configuration&, const StringEscaper& escaper,
23 AString& dest ) {
24 auto& rec= data->As<alib::lox::textlogger::FormatMetaInfo>();
25 escaper.Escape(rec.Format , dest, A_CHAR(",")); dest <<", " << NEW_LINE;
26 escaper.Escape(rec.VerbosityError , dest, A_CHAR(",")); dest <<", " << NEW_LINE;
27 escaper.Escape(rec.VerbosityWarning , dest, A_CHAR(",")); dest <<", " << NEW_LINE;
28 escaper.Escape(rec.VerbosityInfo , dest, A_CHAR(",")); dest <<", " << NEW_LINE;
29 escaper.Escape(rec.VerbosityVerbose , dest, A_CHAR(",")); dest <<", " << NEW_LINE;
30 escaper.Escape(rec.MsgSuffix , dest, A_CHAR(","));
31}
32
33} // namespace [alib::variables::detail]
34DOX_MARKER([DOX_VARIABLES_DEFINETYPE2])
35
37
38// FormatDate
39ALIB_DLL void VMeta_FormatDateTime::imPort(VDATA* data , Configuration&,
40 const StringEscaper& escaper, const String& src) {
41 auto& rec= data->As<alib::lox::textlogger::FormatDateTime>();
43 StringVectorMA results(la);
44 escaper.UnescapeTokens(results, src, A_CHAR(","));
45
46 rec.Date .Reset(results.TryGet(0));
47 rec.TimeOfDay .Reset(results.TryGet(1));
48 rec.ElapsedDays.Reset(results.TryGet(2));
49}
50ALIB_DLL void VMeta_FormatDateTime::exPort( VDATA* data , Configuration& cfg,
51 const StringEscaper& escaper, AString& dest ) {
52 (void)cfg;
53 auto& rec= data->As<alib::lox::textlogger::FormatDateTime>();
54 escaper.Escape(rec.Date , dest, A_CHAR(",")); dest << A_CHAR(", ");
55 escaper.Escape(rec.TimeOfDay , dest, A_CHAR(",")); dest << A_CHAR(", ");
56 escaper.Escape(rec.ElapsedDays , dest, A_CHAR(","));
57}
58
59// FormatTimeDiff
60ALIB_DLL void VMeta_FormatTimeDiff::imPort(VDATA* data , Configuration&,
61 const StringEscaper& escaper, const String& src) {
62 auto& rec= data->As<alib::lox::textlogger::FormatTimeDiff>();
64 StringVectorMA results(la);
65 escaper.UnescapeTokens(results, src, A_CHAR(","));
66
67 rec.Minimum =int64_t(Substring( results.TryGet(0)).ParseDec());
68 rec.None .Reset( results.TryGet(1));
69 rec.Nanos .Reset( results.TryGet(2));
70 rec.Micros .Reset( results.TryGet(3));
71 rec.Millis .Reset( results.TryGet(4));
72 rec.Secs .Reset( results.TryGet(5));
73 rec.Mins .Reset( results.TryGet(6));
74 rec.Hours .Reset( results.TryGet(7));
75 rec.Days .Reset( results.TryGet(8));
76}
77ALIB_DLL void VMeta_FormatTimeDiff::exPort( VDATA* data , Configuration& cfg,
78 const StringEscaper& escaper, AString& dest ) {
79 (void)cfg;
80 auto& rec= data->As<alib::lox::textlogger::FormatTimeDiff>();
81 dest << rec.Minimum; dest << A_CHAR(", ");
82 escaper.Escape(rec.None , dest, A_CHAR(",")); dest << A_CHAR(", ");
83 escaper.Escape(rec.Nanos , dest, A_CHAR(",")); dest << A_CHAR(", ");
84 escaper.Escape(rec.Micros , dest, A_CHAR(",")); dest << A_CHAR(", ");
85 escaper.Escape(rec.Millis , dest, A_CHAR(",")); dest << A_CHAR(", ");
86 escaper.Escape(rec.Secs , dest, A_CHAR(",")); dest << A_CHAR(", ");
87 escaper.Escape(rec.Mins , dest, A_CHAR(",")); dest << A_CHAR(", ");
88 escaper.Escape(rec.Hours , dest, A_CHAR(",")); dest << A_CHAR(", ");
89 escaper.Escape(rec.Days , dest, A_CHAR(","));
90}
91
92// FormatMultiLine
93ALIB_DLL void VMeta_FormatMultiLine::imPort( VDATA* data , Configuration&,
94 const StringEscaper& escaper, const String& src) {
95 auto& rec= data->As<alib::lox::textlogger::FormatMultiLine>();
97 StringVectorMA results(la);
98 escaper.UnescapeTokens(results, src, A_CHAR(","));
99 String256 buf;
100
101 rec.Mode =int(Substring( results.TryGet(0) ).ParseDec());
102 rec.Headline .Reset(results.TryGet(1));
103 rec.Prefix .Reset(results.TryGet(2));
104 rec.Suffix .Reset(results.TryGet(3));
105 buf .Reset(results.TryGet(4));
106 if( !buf.StartsWith<CHK, lang::Case::Ignore>(A_CHAR("null")) )
107 rec.Delimiter .Reset(buf);
108 rec.DelimiterReplacement .Reset(results.TryGet(5));
109}
110
111ALIB_DLL void VMeta_FormatMultiLine::exPort( VDATA* data , Configuration& cfg,
112 const StringEscaper& escaper, AString& dest ) {
113 (void)cfg;
114 auto& rec= data->As<alib::lox::textlogger::FormatMultiLine>();
115 dest << rec.Mode ; dest << A_CHAR(", ");
116 escaper.Escape(rec.Headline , dest, A_CHAR(",")); dest << A_CHAR(", ");
117 escaper.Escape(rec.Prefix , dest, A_CHAR(",")); dest << A_CHAR(", ");
118 escaper.Escape(rec.Suffix , dest, A_CHAR(",")); dest << A_CHAR(", ");
119 if( rec.Delimiter.IsNotNull() )
120 escaper.Escape(rec.Delimiter , dest, A_CHAR(",")) << dest << A_CHAR(", ");
121 else
122 dest << "nulled, ";
123 escaper.Escape(rec.DelimiterReplacement , dest, A_CHAR(","));
124}
125
126// FormatOther
127ALIB_DLL void VMeta_FormatOther::imPort( VDATA* data , Configuration&,
128 const StringEscaper& escaper, const String& src) {
129 auto& rec= data->As<alib::lox::textlogger::FormatOther>();
131 StringVectorMA results(la);
132 escaper.UnescapeTokens(results, src, A_CHAR(","));
133
134 rec.NoSourceFileInfo .Reset(results.TryGet(0));
135 rec.NoMethodInfo .Reset(results.TryGet(1));
136 rec.LogNumberMinDigits= int(Substring( results.TryGet(2) ).ParseDec());
137}
138ALIB_DLL void VMeta_FormatOther::exPort( VDATA* data ,
140 const StringEscaper& escaper,
141 AString& dest ) {
142 auto& rec= data->As<alib::lox::textlogger::FormatOther>();
143#if ALIB_CHARACTERS_WIDE
144 String256 wNoSourceFileInfo(rec.NoSourceFileInfo);
145 String256 wNoMethodInfo (rec.NoMethodInfo );
146 escaper.Escape(wNoSourceFileInfo , dest, A_CHAR(",")); dest << A_CHAR(", ");
147 escaper.Escape(wNoMethodInfo , dest, A_CHAR(",")); dest << A_CHAR(", ");
148#else
149 escaper.Escape(rec.NoSourceFileInfo , dest, ","); dest << A_CHAR(", ");
150 escaper.Escape(rec.NoMethodInfo , dest, ","); dest << A_CHAR(", ");
151#endif
152 dest << rec.LogNumberMinDigits;
153}
154
155// FormatAutoSizes
156ALIB_DLL void VMeta_FormatAutoSizes::imPort( VDATA* data , Configuration&,
157 const StringEscaper& , const String& src) {
158 auto& rec= data->As<alib::lox::textlogger::FormatAutoSizes>();
159
160 Substring importMI(src);
161 Substring importLog;
162 integer sepPos= importMI.IndexOf(';');
163 if( sepPos >= 0 )
164 importMI.Split( sepPos, importLog, 1 );
165 rec.Main .Import( importMI );
166 rec.LogMessage.Import( importLog );
167}
168
169ALIB_DLL void VMeta_FormatAutoSizes::exPort( VDATA* data, Configuration&,
170 const StringEscaper& , AString& dest ) {
171 auto& rec= data->As<alib::lox::textlogger::FormatAutoSizes>();
172 rec.Main .Export( dest );
173 dest << " ; ";
174 rec.LogMessage.Export( dest );
175}
176
177// Replacements
178ALIB_DLL void VMeta_Replacements::imPort(VDATA* data , Configuration&,
179 const StringEscaper& escaper, const String& src) {
180 auto& pairs= data->As<alib::lox::textlogger::Replacements>().Pairs;
182 StringVectorMA results(la);
183 escaper.UnescapeTokens(results, src, A_CHAR("=,"));
184 int cnt= 0;
185 while(true) {
186 String searchString= results.TryGet(cnt );
187 String replaceString= results.TryGet(cnt + 1);
188 if( searchString.IsEmpty() )
189 break;
190
191 pairs.insert( pairs.end(), AStringPA(pairs.get_allocator().GetAllocator()) );
192 pairs.back() << searchString;
193 pairs.insert( pairs.end(), AStringPA(pairs.get_allocator().GetAllocator()) );
194 pairs.back() << replaceString;
195 cnt+= 2;
196} }
197
198ALIB_DLL void VMeta_Replacements::exPort( VDATA* data , Configuration&,
199 const StringEscaper& escaper, AString& dest) {
200 auto& pairs= data->As<alib::lox::textlogger::Replacements>().Pairs;
201 for(auto it = pairs.begin() ; it != pairs.end() ; ) {
202 escaper.Escape(*it , dest, A_CHAR("=,"));
203 dest << "=";
204 ++it;
205 escaper.Escape(*it , dest, A_CHAR("=,"));
206 dest << ", ";
207 ++it;
208 }
209 dest.DeleteEnd(A_CHAR(", "));
210}
211
212// ColorfulLoggerParameters
213ALIB_DLL void VMeta_ColorfulLoggerParameters::imPort(VDATA* data, Configuration&,
214 const StringEscaper& , const String& src) {
215 auto& CLP= data->As<alib::lox::textlogger::ColorfulLoggerParameters>();
216 Substring p= src;
217 p.Trim();
219 ALIB_WARNING( "ALOX", "Error parsing variable CONSOLE_LIGHT_COLORS value '{}'.", src )
220} }
221
222ALIB_DLL void VMeta_ColorfulLoggerParameters::exPort(VDATA* data, Configuration&,
223 const StringEscaper& , AString& dest) {
224 auto& CLP= data->As<alib::lox::textlogger::ColorfulLoggerParameters>();
225 dest << CLP.LCU;
226}
227
228} //namespace [alib::variables::detail]
229#endif //if !DOXYGEN
#define ALIB_DLL
#define A_CHAR(STR)
#define ALIB_WARNING(domain,...)
uint64_t ParseDec(integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const
integer IndexOf(TChar needle, integer startIdx=0) const
Definition string.hpp:799
TSubstring & Trim(const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces())
bool Parse(strings::TSubstring< TChar > &input, TEnum &result)
VData< void * > VDATA
Definition vmeta.hpp:53
strings::TAString< character, PoolAllocator > AStringPA
Type alias in namespace #"%alib".
strings::util::TStringVector< character, MonoAllocator > StringVectorMA
Type alias in namespace #"%alib".
Definition vector.hpp:107
constexpr CString NEW_LINE
A zero-terminated string containing the new-line character sequence.
Definition cstring.hpp:536
variables::Configuration Configuration
Type alias in namespace #"%alib".
lang::integer integer
Type alias in namespace #"%alib".
Definition integers.hpp:149
strings::util::StringEscaper StringEscaper
Type alias in namespace #"%alib".
Definition escaper.hpp:181
strings::TString< character > String
Type alias in namespace #"%alib".
Definition string.hpp:2165
strings::TSubstring< character > Substring
Type alias in namespace #"%alib".
LocalString< 256 > String256
Type alias name for #"TLocalString;TLocalString<character,256>".
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace #"%alib".
monomem::TLocalAllocator< 4 > LocalAllocator4K
Type alias in namespace #"%alib". Allocates 4kB of stack memory.