10 #if !defined(ALIB_DOX)
12 #if !defined (HPP_ALIB_FS_MODULES_DISTRIBUTION)
16 #if !defined (HPP_ALIB_COMPATIBILITY_STD_STRINGS_IOSTREAM)
20 #if !defined (HPP_ALIB_RESOURCES_RESOURCES)
24 # if ALIB_THREADS && ALIB_ENUMS
28 #if ALIB_CONFIGURATION
29 # if !defined (HPP_ALIB_CONFIG_CONFIG)
32 # if !defined (HPP_ALIB_CONFIG_INI_FILE)
35 # if !defined (HPP_ALIB_CONFIG_VARIABLE)
38 # if !defined (HPP_ALIB_CONFIG_CONFIGURATION)
41 # if !defined (HPP_ALIB_SYSTEM_ENVIRONMENT)
47 # if !defined (HPP_ALIB_SYSTEM_SYSTEM)
50 # if !defined (HPP_ALIB_SYSTEM_ENVIRONMENT)
53 # if !defined (HPP_ALIB_SYSTEM_PROCESSINFO)
56 # if !defined (HPP_ALIB_STRINGS_UTIL_TOKENIZER)
62 # if !defined (HPP_ALIB_EXPRESSIONS_EXPRESSIONS)
68 # if !defined (HPP_ALIB_TEXT_TEXT)
74 # if !defined (HPP_ALIB_STRINGS_NUMBERFORMAT)
80 # if !defined (HPP_AWORX_ALIB_BITBUFFER_ARRAY_COMPRESSOR)
86 # if !defined (HPP_ALIB_MONOMEM_HASHTABLE)
92 # if !defined (HPP_ALIB_RESULTS_EXCEPTION)
95 # if !defined (HPP_ALIB_RESULTS_RESULTS)
101 # if !defined (HPP_ALIB_ALOXMODULE)
107 # if !defined (HPP_ALIB_CLI_CLI)
112 #if !defined(HPP_ALIB_FS_COMMONENUMS)
116 #if !defined (HPP_ALIB_ENUMS_RECORDBOOTSTRAP)
120 #endif // !defined(ALIB_DOX)
135 , Modules(&monomem::GlobalAllocator)
136 , LocaleFound(nullptr)
139 "Instances of class ALibDistribution must not be created. Use singleton aworx::ALIB" )
143 {
"ALIB_DEBUG" , ALIB_VFYBIT_DEBUG },
145 {
"ALIB_MONOMEM" , ALIB_VFYBIT_MODULE_MONOMEM },
146 {
"ALIB_SINGLETONS" , ALIB_VFYBIT_MODULE_SINGLETONS },
147 {
"ALIB_CHARACTERS" , ALIB_VFYBIT_MODULE_CHARACTERS },
148 {
"ALIB_ENUMS" , ALIB_VFYBIT_MODULE_ENUMS },
149 {
"ALIB_TIME" , ALIB_VFYBIT_MODULE_TIME },
150 {
"ALIB_BOXING" , ALIB_VFYBIT_MODULE_BOXING },
151 {
"ALIB_STRINGS" , ALIB_VFYBIT_MODULE_STRINGS },
152 {
"ALIB_BITBUFFER" , ALIB_VFYBIT_MODULE_BITBUFFER },
153 {
"ALIB_RESOURCES" , ALIB_VFYBIT_MODULE_RESOURCES },
154 {
"ALIB_THREADS" , ALIB_VFYBIT_MODULE_THREADS },
155 {
"ALIB_TEXT" , ALIB_VFYBIT_MODULE_TEXT },
156 {
"ALIB_RESULTS" , ALIB_VFYBIT_MODULE_RESULTS },
157 {
"ALIB_SYSTEM" , ALIB_VFYBIT_MODULE_SYSTEM },
158 {
"ALIB_CONFIGURATION" , ALIB_VFYBIT_MODULE_CONFIGURATION },
159 {
"ALIB_ALOX" , ALIB_VFYBIT_MODULE_ALOX },
160 {
"ALIB_EXPRESSIONS" , ALIB_VFYBIT_MODULE_EXPRESSIONS },
161 {
"ALIB_CLI" , ALIB_VFYBIT_MODULE_CLI },
163 {
"ALIB_FEAT_SINGLETON_MAPPED" , ALIB_VFYBIT_FEAT_SINGLETON_MAPPED },
165 {
"ALIB_CHARACTERS_WIDE" , ALIB_VFYBIT_CHARACTERS_WIDE },
166 {
"ALIB_CHARACTERS_WCHAR_IS_4" , ALIB_VFYBIT_CHARACTERS_WCHAR_IS_4 },
168 {
"ALIB_FEAT_BOXING_BIJECTIVE_INTEGRALS" , ALIB_VFYBIT_FEAT_BOXING_BIJECTIVE_INTEGRALS },
169 {
"ALIB_FEAT_BOXING_BIJECTIVE_CHARACTERS" , ALIB_VFYBIT_FEAT_BOXING_BIJECTIVE_CHARACTERS},
170 {
"ALIB_FEAT_BOXING_BIJECTIVE_FLOATS" , ALIB_VFYBIT_FEAT_BOXING_BIJECTIVE_FLOATS },
172 {
"ALIB_DEBUG_STRINGS" , ALIB_VFYBIT_DEBUG_STRINGS },
173 {
"ALIB_DEBUG_BOXING" , ALIB_VFYBIT_DEBUG_BOXING },
174 {
"ALIB_DEBUG_MONOMEM" , ALIB_VFYBIT_DEBUG_MONOMEM_MONOMEM },
175 {
"ALIB_DEBUG_RESOURCES" , ALIB_VFYBIT_DEBUG_RESOURCES },
177 {
"ALOX_DBG_LOG" , ALOX_VFYBIT_DBG_LOG },
178 {
"ALOX_DBG_LOG_CI" , ALOX_VFYBIT_DBG_LOG_CI },
179 {
"ALOX_REL_LOG" , ALOX_VFYBIT_REL_LOG },
180 {
"ALOX_REL_LOG_CI" , ALOX_VFYBIT_REL_LOG_CI },
194 "List Modules::BootstrapModules already set." )
226 #if !ALIB_RESOURCES_OMIT_DEFAULTS
230 "Alignment",
A_CHAR(
"0" "," "Left" "," "1" ","
231 "1" "," "Right" "," "1" ","
232 "2" "," "Center" "," "1" ),
234 "Bool",
A_CHAR(
"0" "," "False" "," "1" ","
235 "1" "," "True" "," "1" ","
236 "0" "," "0" "," "1" ","
237 "1" "," "1" "," "1" ","
238 "0" "," "No" "," "1" ","
239 "1" "," "Yes" "," "1" ","
240 "0" "," "Off" "," "2" ","
241 "1" "," "On" "," "2" ","
242 "0" "," "-" "," "1" ","
243 "1" "," "Ok" "," "2" ),
245 "Caching",
A_CHAR(
"0" "," "Disabled" "," "1" ","
246 "1" "," "Enabled" "," "1" ","
247 "1" "," "Auto" "," "1" ),
249 "Case",
A_CHAR(
"0" "," "Sensitive" "," "1" ","
250 "1" "," "Ignore" "," "1" ),
252 "ContainerOp",
A_CHAR(
"0" "," "Insert" "," "1" ","
253 "1" "," "Remove" "," "1" ","
254 "3" "," "GetCreate" "," "4" ","
255 "2" "," "Get" "," "1" ","
256 "4" "," "Create" "," "1" ),
261 "CurrentData",
A_CHAR(
"0" "," "Keep" "," "1" ","
262 "1" "," "Clear" "," "1" ),
264 "Inclusion",
A_CHAR(
"0" "," "Include" "," "1" ","
265 "1" "," "Exclude" "," "1" ),
267 "Initialization",
A_CHAR(
"0" "," "DontInitialize" "," "1" ","
268 "1" "," "Initialize" "," "1" ","
269 "0" "," "Suppress" "," "1" ","
270 "1" "," "Perform" "," "1" ),
272 "Phase",
A_CHAR(
"0" "," "Begin" "," "1" ","
273 "1" "," "End" "," "1" ),
275 "Propagation",
A_CHAR(
"0" "," "Omit" "," "1" ","
276 "1" "," "ToDescendants" "," "1" ),
278 "Reach",
A_CHAR(
"0" "," "Global" "," "1" ","
279 "1" "," "Local" "," "1" ),
281 "Responsibility",
A_CHAR(
"0" "," "KeepWithSender" "," "1" ","
282 "1" "," "Transfer" "," "1" ),
284 "Safeness",
A_CHAR(
"0" "," "Safe" "," "1" ","
285 "1" "," "Unsafe" "," "1" ),
287 "Side",
A_CHAR(
"0" "," "Left" "," "1" ","
288 "1" "," "Right" "," "1" ),
290 "SortOrder",
A_CHAR(
"0" "," "Ascending" "," "1" ","
291 "1" "," "Descending" "," "1" ),
293 "SourceData",
A_CHAR(
"0" "," "Copy" "," "1" ","
294 "1" "," "Move" "," "1" ),
296 "Switch",
A_CHAR(
"0" "," "Off" "," "2" ","
297 "1" "," "On" "," "2" ),
299 "Timezone",
A_CHAR(
"0" "," "Local" "," "1" ","
300 "1" "," "UTC" "," "1" ),
302 "Timing",
A_CHAR(
"0" "," "Async" "," "1" ","
303 "1" "," "Sync" "," "1" ","
304 "0" "," "Asynchronous" "," "1" ","
305 "1" "," "Synchronous" "," "1" ","
306 "1" "," "Synchronized" "," "1" ),
308 "ValueReference",
A_CHAR(
"0" "," "Absolute" "," "1" ","
309 "1" "," "Relative" "," "1" ),
311 "Whitespaces",
A_CHAR(
"0" "," "Trim" "," "1" ","
312 "1" "," "Keep" "," "1" ),
316 "TSts",
A_CHAR(
"0" "," "Unstarted" "," "1" ","
317 "1" "," "Started" "," "3" ","
318 "2" "," "Running" "," "1" ","
319 "3" "," "Stopped" "," "3" ","
320 "4" "," "Terminated" "," "1" ),
326 "Var0",
A_CHAR(
"1|ALIB|LOCALE|||"),
327 "Var1",
A_CHAR(
"2|ALIB|WAIT_FOR_KEY_PRESS|||"),
328 "Var2",
A_CHAR(
"3|ALIB|HAS_CONSOLE_WINDOW|||"),
331 "Var_C1",
A_CHAR(
"Defines the locale of the application. If empty or not set, the system's locale is used."),
332 "Var_C2",
A_CHAR(
"If true, the process waits for a key stroke on termination. If empty, under Windows" "\n"
333 "behavior is detected, under other OSes, defaults to false." ),
334 "Var_C3",
A_CHAR(
"Boolean value that denotes what its name indicates. If empty, under Windows value is " "\n"
335 "detected, under other OSes, defaults to true." ),
344 "INI_CMT_ALIB",
A_CHAR(
"@>'/// '@HL-General ALib library settings.\n@HL-"),
347 "EXIT_MSG" ,
A_CHAR(
"ALIB: Press 'Enter' to exit..." ),
350 "ACAlgos" ,
A_CHAR(
"0" ",NONE" "," "1" ","
351 "31" ",ALL" "," "1" ","
352 "1" ",Uncompressed" "," "1" ","
353 "2" ",MinMax" "," "1" ","
354 "4" ",Sparse" "," "1" ","
355 "8" ",VerySparse" "," "1" ","
356 "16" ",Incremental" "," "1" ","
357 "32" ",Huffman" "," "1" ),
361 #endif // !ALIB_RESOURCES_OMIT_DEFAULTS
363 #if ALIB_BITBUFFER && ALIB_BOXING && ALIB_ENUMS
381 DOX_MARKER( [DOX_ALIB_ENUMS_MAKE_PARSABLE_22] )
383 DOX_MARKER( [DOX_ALIB_ENUMS_MAKE_PARSABLE_22] )
418 #if ALIB_CONFIGURATION
421 && variable.GetString().IsNotEmpty() )
424 locale.
_( variable.GetString() );
436 if( !setlocale(LC_ALL, nLocale ) )
438 NString256 msg(
"ALib Error: setlocale(\""); msg << nLocale <<
"\") failed. Setting read from ";
439 msg << ( receivedFrom == 1 ?
"config variable 'ALIB_LOCALE'" :
440 receivedFrom == 2 ?
"environment variable 'LANG'" :
441 receivedFrom == 3 ?
"environment variable 'LANGUAGE'" :
"ERROR" );
445 std::cerr <<
". Trying 'setlocale(LC_ALL, \"\")': ";
446 if ( setlocale(LC_ALL,
"" ) )
447 std::cerr <<
" success.";
450 std::cerr <<
"failed. Trying 'setlocale(LC_ALL, \"C\")': ";
451 if ( setlocale(LC_ALL,
"C" ) )
452 std::cerr <<
" success.";
454 std::cerr << std::endl <<
" Panic: No standard locale setting was successful!";
456 std::cerr << std::endl;
470 #if ALIB_CONFIGURATION
473 if ( variable.Size() > 0 )
477 #if defined(_WIN32) && ALIB_DEBUG
486 #if defined(_WIN32) && ALIB_DEBUG
497 #if ALIB_CONFIGURATION
500 if ( variable.Size() > 0 && variable.GetString().Length() > 0 )
503 #endif // ALIB_CONFIGURATION
536 #if ALIB_CONFIGURATION
546 OutputDebugStringA(
"\r\nALIB: Waiting for 'Enter' key in the console window.\r\n" );
549 std::cout << std::endl <<
GetResource(
"EXIT_MSG") << std::endl;
550 while ( getchar() !=
'\n' )
569 #if defined(__unix__) || defined(__APPLE__)
578 #if defined(__unix__) || defined(__APPLE__)
583 if ( parentPID == 0 )
587 Tokenizer tknzr( DebuggerProcessNames,
'|' );
596 #elif defined(_WIN32)
601 #pragma message ("Unknown Platform in file: " __FILE__ )
606 #endif // ALIB_SYSTEM
616 std::cout <<
"!!! Error in ALox library compilation: linked against wrong version of ALib" << std::endl;
617 std::cout <<
"!!! ALib library version: " <<
Version << std::endl;
618 std::cout <<
"!!! ALib requested version: " << alibVersion << std::endl;
619 std::cout <<
"!!! Exiting with exit(-1)" << std::endl;
626 std::cout <<
"!!! Error in ALib library compilation: linked library of ALib has different compiler symbols set." << std::endl;