00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00049 #ifndef PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS
00050 #define PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS
00051
00052
00053
00054
00055
00056 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00057 # define PANTHEIOS_VER_PANTHEIOS_H_PANTHEIOS_MAJOR 3
00058 # define PANTHEIOS_VER_PANTHEIOS_H_PANTHEIOS_MINOR 46
00059 # define PANTHEIOS_VER_PANTHEIOS_H_PANTHEIOS_REVISION 1
00060 # define PANTHEIOS_VER_PANTHEIOS_H_PANTHEIOS_EDIT 350
00061 #endif
00062
00079 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00080 # define PANTHEIOS_VER_1_0_1_B2 0x01000102
00081 # define PANTHEIOS_VER_1_0_1_B193 0x010001c1
00082 # define PANTHEIOS_VER_1_0_1_B194 0x010001c2
00083 # define PANTHEIOS_VER_1_0_1_B195 0x010001c3
00084 # define PANTHEIOS_VER_1_0_1_B196 0x010001c4
00085 # define PANTHEIOS_VER_1_0_1_B197 0x010001c5
00086 # define PANTHEIOS_VER_1_0_1_B198 0x010001c6
00087 # define PANTHEIOS_VER_1_0_1_B199 0x010001c7
00088 # define PANTHEIOS_VER_1_0_1_B200 0x010001c8
00089 # define PANTHEIOS_VER_1_0_1_B201 0x010001c9
00090 # define PANTHEIOS_VER_1_0_1_B202 0x010001ca
00091 # define PANTHEIOS_VER_1_0_1_B203 0x010001cb
00092 # define PANTHEIOS_VER_1_0_1_B204 0x010001cc
00093 # define PANTHEIOS_VER_1_0_1_B205 0x010001cd
00094 # define PANTHEIOS_VER_1_0_1_B206 0x010001ce
00095 # define PANTHEIOS_VER_1_0_1_B207 0x010001cf
00096 # define PANTHEIOS_VER_1_0_1_B208 0x010001d0
00097 # define PANTHEIOS_VER_1_0_1_B209 0x010001d1
00098 # define PANTHEIOS_VER_1_0_1_B210 0x010001d2
00099 # define PANTHEIOS_VER_1_0_1_B211 0x010001d3
00100 # define PANTHEIOS_VER_1_0_1_B212 0x010001d4
00101 # define PANTHEIOS_VER_1_0_1_B213 0x010001d5
00102 # define PANTHEIOS_VER_1_0_1_B214 0x010001d6
00103 # define PANTHEIOS_VER_1_0_1 0x010001ff
00104 #endif
00105
00106 #define PANTHEIOS_VER_MAJOR 1
00107 #define PANTHEIOS_VER_MINOR 0
00108 #define PANTHEIOS_VER_REVISION 1
00109
00110 #define PANTHEIOS_VER PANTHEIOS_VER_1_0_1_B214
00111
00112
00113
00114
00115
00116
00117
00118
00119 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00120 # include <stlsoft/stlsoft.h>
00121 #endif
00122
00123 #if !defined(_STLSOFT_VER) || \
00124 _STLSOFT_VER < 0x010973ff
00125 # error This version Pantheios requires STLSoft 1.9.115, or later. (www.stlsoft.org)
00126 #endif
00127
00128 #ifndef PANTHEIOS_INCL_H_STDARG
00129 # define PANTHEIOS_INCL_H_STDARG
00130 # include <stdarg.h>
00131 #endif
00132 #ifndef PANTHEIOS_INCL_H_STDDEF
00133 # define PANTHEIOS_INCL_H_STDDEF
00134 # include <stddef.h>
00135 #endif
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154 #ifndef PANTHEIOS_USE_WIDE_STRINGS
00155 # if defined(_WIN32) && \
00156 defined(UNICODE) && \
00157 defined(_UNICODE)
00158 # define PANTHEIOS_USE_WIDE_STRINGS
00159 # endif
00160 #endif
00161
00162 #ifdef PANTHEIOS_NO_USE_WIDE_STRINGS
00163 # ifdef PANTHEIOS_USE_WIDE_STRINGS
00164 # undef PANTHEIOS_USE_WIDE_STRINGS
00165 # endif
00166 #endif
00167
00168
00169
00170
00171
00172 #ifdef PANTHEIOS_USE_WIDE_STRINGS
00173 # ifndef _WCHAR_T_DEFINED
00174 # include <wchar.h>
00175 # endif
00176 #endif
00177
00178
00179 #include <pantheios/internal/string_encoding.h>
00180
00181
00182
00183
00184
00194 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00195 # define PANTHEIOS_STRINGIZE_(x) #x
00196 #endif
00197 #define PANTHEIOS_STRINGIZE(x) PANTHEIOS_STRINGIZE_(x)
00198
00211 #define PANTHEIOS_MAKE_EXTENDED_SEVERITY(sev, xi28) \
00212 \
00213 (((sev) & 0x0f) | (((xi28) << 4) & ~0x0f))
00214
00229 #define PANTHEIOS_CARG_STR(s) (s), (-1)
00230
00246 #define PANTHEIOS_CARG_STR_LEN(s, n) (s), (n)
00247
00305 #if !defined(PANTHEIOS_DECLSPEC)
00306 # define PANTHEIOS_DECLSPEC
00307 #endif
00308
00309 #if defined(__cplusplus) || \
00310 defined(PANTHEIOS_DOCUMENTATION_SKIP_SECTION)
00311 # define PANTHEIOS_EXTERN_C extern "C"
00312 #else
00313 # define PANTHEIOS_EXTERN_C extern
00314 #endif
00315
00316 #if !defined(PANTHEIOS_CALLCONV)
00317 # define PANTHEIOS_CALLCONV
00318 #endif
00319
00320 #define PANTHEIOS_CALL(rt) PANTHEIOS_DECLSPEC PANTHEIOS_EXTERN_C rt PANTHEIOS_CALLCONV
00321
00322 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00323 # define PANTHEIOS_CPP_CALL(rt) PANTHEIOS_DECLSPEC extern "C++" rt PANTHEIOS_CALLCONV
00324 #endif
00325
00326 #ifdef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00327 # define PANTHEIOS_DECLARE_DEPRECATION(symtype, oldfn, newfn)
00328 # define PANTHEIOS_CALL_DEPRECATED(rt, oldfn, newfn) PANTHEIOS_CALL(rt)
00329 #else
00330 # if defined(STLSOFT_COMPILER_IS_MSVC) && \
00331 ( _MSC_VER >= 1500 || \
00332 ( _MSC_VER >= 1400 && \
00333 defined(_MSC_FULL_VER) && \
00334 _MSC_FULL_VER >= 140050320))
00335 # define PANTHEIOS_DECLARE_DEPRECATION(symtype, oldfn, newfn) __declspec(deprecated("The " symtype " " PANTHEIOS_STRINGIZE(oldfn) " is deprecated and will be removed from a future version of Pantheios; use " PANTHEIOS_STRINGIZE(newfn) " instead"))
00336 # define PANTHEIOS_CALL_DEPRECATED(rt, oldfn, newfn) PANTHEIOS_DECLARE_DEPRECATION("function", oldfn, newfn) PANTHEIOS_DECLSPEC PANTHEIOS_EXTERN_C rt PANTHEIOS_CALLCONV
00337 # else
00338 # define PANTHEIOS_DECLARE_DEPRECATION(symtype, oldfn, newfn)
00339 # define PANTHEIOS_CALL_DEPRECATED(rt, oldfn, newfn) PANTHEIOS_CALL(rt)
00340 # endif
00341 #endif
00342
00343
00344
00345
00346
00347 #if defined(STLSOFT_CF_NAMESPACE_SUPPORT)
00348 # define PANTHEIOS_CF_NAMESPACE_SUPPORT
00349 #else
00350 # ifdef PANTHEIOS_CF_NAMESPACE_SUPPORT
00351 # undef PANTHEIOS_CF_NAMESPACE_SUPPORT
00352 # endif
00353 #endif
00354
00355 #if !defined(PANTHEIOS_CF_NAMESPACE_SUPPORT) && \
00356 !defined(PANTHEIOS_DOCUMENTATION_SKIP_SECTION) && \
00357 !defined(PANTHEIOS_NO_NAMESPACE)
00358 # define PANTHEIOS_NO_NAMESPACE
00359 #endif
00360
00361 #if !defined(PANTHEIOS_NO_NAMESPACE)
00362
00367 namespace pantheios
00368 {
00369
00374 namespace util
00375 {
00376 }
00377
00382 namespace core
00383 {
00384 }
00385
00386 # define PANTHEIOS_NS_QUAL(x) ::pantheios::x
00387 # define PANTHEIOS_SUBNS_QUAL(sns, x) ::pantheios::sns::x
00388
00389 #else
00390
00391 # define PANTHEIOS_NS_QUAL(x) x
00392 # define PANTHEIOS_SUBNS_QUAL(sns, x) x
00393
00394 #endif
00395
00408
00409
00410
00411
00412
00413
00415 typedef stlsoft_ns_qual(ss_uint8_t) pan_uint8_t;
00417 typedef stlsoft_ns_qual(ss_uint16_t) pan_uint16_t;
00419 typedef stlsoft_ns_qual(ss_uint32_t) pan_uint32_t;
00421 typedef stlsoft_ns_qual(ss_uint64_t) pan_uint64_t;
00422
00424 typedef stlsoft_ns_qual(ss_sint8_t) pan_sint8_t;
00426 typedef stlsoft_ns_qual(ss_sint16_t) pan_sint16_t;
00428 typedef stlsoft_ns_qual(ss_sint32_t) pan_sint32_t;
00430 typedef stlsoft_ns_qual(ss_sint64_t) pan_sint64_t;
00431
00432
00439 #ifdef PANTHEIOS_USE_WIDE_STRINGS
00440 typedef wchar_t pan_char_t;
00441 #else
00442 typedef char pan_char_t;
00443 #endif
00444
00452 #define PAN_CHAR_T PANTHEIOS_NS_QUAL(pan_char_t)
00453
00465 struct pan_slice_t
00466 {
00467 size_t len;
00468 pan_char_t const* ptr;
00470 #ifdef __cplusplus
00471
00472 pan_slice_t();
00474 pan_slice_t(pan_char_t const* p, size_t l);
00476 pan_slice_t(pan_slice_t const& rhs);
00478 pan_slice_t& operator =(pan_slice_t const& rhs);
00479
00480 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00481
00482 pan_slice_t(int len, pan_char_t const* p);
00483 # endif
00484
00485 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00486
00491 static size_t get_lazy_length(size_t fromLen, size_t toLen);
00492 #endif
00493
00494 private:
00495 static size_t calc_length_n_(pan_char_t const* s, size_t len);
00496
00497 #endif
00498 };
00499 #if !defined(__cplusplus)
00500 typedef struct pan_slice_t pan_slice_t;
00501 #endif
00502
00503
00504 #ifndef PANTHEIOS_NO_STOCK_LEVELS
00505
00520 enum pan_severity_t
00521 {
00522 SEV_EMERGENCY = 0
00523 , SEV_ALERT = 1
00524 , SEV_CRITICAL = 2
00525 , SEV_ERROR = 3
00526 , SEV_WARNING = 4
00527 , SEV_NOTICE = 5
00528 , SEV_INFORMATIONAL = 6
00529 , SEV_DEBUG = 7
00531 # if defined(PANTHEIOS_NO_NAMESPACE)
00532 , PANTHEIOS_SEV_EMERGENCY = SEV_EMERGENCY
00533 , PANTHEIOS_SEV_ALERT = SEV_ALERT
00534 , PANTHEIOS_SEV_CRITICAL = SEV_CRITICAL
00535 , PANTHEIOS_SEV_ERROR = SEV_ERROR
00536 , PANTHEIOS_SEV_WARNING = SEV_WARNING
00537 , PANTHEIOS_SEV_NOTICE = SEV_NOTICE
00538 , PANTHEIOS_SEV_INFORMATIONAL = SEV_INFORMATIONAL
00539 , PANTHEIOS_SEV_DEBUG = SEV_DEBUG
00540 # endif
00541
00542 };
00543 # if !defined(__cplusplus)
00544 typedef enum pan_severity_t pan_severity_t;
00545 # endif
00546 #endif
00547
00554 typedef stlsoft_ns_qual(ss_sint32_t) pan_sev_t;
00555
00556 #if defined(__cplusplus) && \
00557 !defined(PANTHEIOS_NO_STOCK_LEVELS) && \
00558 !defined(PANTHEIOS_DOCUMENTATION_SKIP_SECTION)
00559 # define PANTHEIOS_INCLUDING_STOCKLEVELS
00560 # include "./internal/stock_levels.hpp"
00561 # undef PANTHEIOS_INCLUDING_STOCKLEVELS
00562
00563 #endif
00564
00565
00566
00567
00568
00585 PANTHEIOS_CALL(pan_uint32_t) pantheios_getVersion(void);
00586
00608 PANTHEIOS_CALL(int) pantheios_init(void);
00609
00629 PANTHEIOS_CALL(void) pantheios_uninit(void);
00630
00647 PANTHEIOS_CALL(int) pantheios_isSeverityLogged(pan_sev_t severity);
00648
00649 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00650
00661 PANTHEIOS_CALL(pan_char_t const*) pantheios_getProcessIdentity(void);
00662 #endif
00663
00674 PANTHEIOS_CALL(pan_char_t const*) pantheios_getStockSeverityString(pan_sev_t severity);
00675 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00676 PANTHEIOS_CALL_DEPRECATED(pan_char_t const*, pantheios_getSeverityString, pantheios_getStockSeverityString) pantheios_getSeverityString(pan_sev_t severity);
00677 #endif
00678
00688 PANTHEIOS_CALL(size_t) pantheios_getStockSeverityStringLength(pan_sev_t severity);
00689 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00690 PANTHEIOS_CALL_DEPRECATED(size_t, pantheios_getSeverityStringLength, pantheios_getStockSeverityStringLength) pantheios_getSeverityStringLength(pan_sev_t severity);
00691 #endif
00692
00702 PANTHEIOS_CALL(char const*) pantheios_getInitCodeString(int code);
00703 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00704 PANTHEIOS_CALL_DEPRECATED(char const*, pantheios_getInitErrorString, pantheios_getInitCodeString) pantheios_getInitErrorString(int code);
00705 #endif
00706
00714 PANTHEIOS_CALL(size_t) pantheios_getInitCodeStringLength(int code);
00715 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00716 PANTHEIOS_CALL_DEPRECATED(size_t, pantheios_getInitErrorStringLength, pantheios_getInitCodeStringLength) pantheios_getInitErrorStringLength(int code);
00717 #endif
00718
00719 #if !defined(PANTHEIOS_NO_NAMESPACE)
00720 namespace core
00721 {
00722 #endif
00723
00737 PANTHEIOS_CALL(int) pantheios_log_n(
00738 pan_sev_t severity
00739 , size_t numSlices
00740 #ifdef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00741 , pantheios::pan_slice_t const* slices
00742 #else
00743 , pan_slice_t const* slices
00744 #endif
00745 );
00746
00747 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00748 # define PANTHEIOS_INCLUDING_C_API_FUNCTIONS
00749 #endif
00750 #include "./internal/generated/log_functions.h"
00751 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00752 # undef PANTHEIOS_INCLUDING_C_API_FUNCTIONS
00753 #endif
00754
00755 #if !defined(PANTHEIOS_NO_NAMESPACE)
00756 }
00757 #endif
00758
00771 PANTHEIOS_CALL(int) pantheios_logprintf(
00772 pan_sev_t severity
00773 , pan_char_t const* format
00774 , ...
00775 )
00776 #if defined(STLSOFT_COMPILER_IS_GCC)
00777 __attribute__((format(printf,2,3)))
00778 #endif
00779 ;
00780
00797 PANTHEIOS_CALL(int) pantheios_logvprintf(
00798 pan_sev_t severity
00799 , pan_char_t const* format
00800 , va_list args
00801 );
00802
00803
00804
00805
00806
00807 #if !defined(PANTHEIOS_NO_NAMESPACE)
00808 namespace util
00809 {
00810 #endif
00811
00839 PANTHEIOS_CALL(void) pantheios_onBailOut4(
00840 int severity
00841 , char const* message
00842 , char const* processId
00843 , char const* qualifier
00844 );
00845
00873 PANTHEIOS_CALL(void) pantheios_onBailOut3(
00874 int severity
00875 , char const* message
00876 , char const* processId
00877 );
00878
00879 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00880
00887 PANTHEIOS_CALL(size_t) pantheios_util_strnlen(pan_char_t const* s, size_t len);
00888 PANTHEIOS_CALL_DEPRECATED(size_t, pantheios_strnlen, pantheios_util_strnlen) pantheios_strnlen(pan_char_t const* s, size_t len);
00889
00890 # endif
00891
00892 #if !defined(PANTHEIOS_NO_NAMESPACE)
00893 }
00894 #endif
00895
00896
00897
00898
00899
00900 #if !defined(PANTHEIOS_NO_NAMESPACE)
00901 namespace core
00902 {
00903 #endif
00904
00905 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00906
00907
00908
00909
00910
00911
00912
00913
00920 PANTHEIOS_CALL(int) pantheios_isInitialising(void);
00927 PANTHEIOS_CALL(int) pantheios_isInitialised(void);
00937 # if defined(STLSOFT_COMPILER_IS_MSVC)
00938 __declspec(noreturn)
00939 # endif
00940 PANTHEIOS_CALL(void) pantheios_exitProcess(int code)
00941 # if defined(STLSOFT_COMPILER_IS_GCC)
00942 __attribute__((noreturn))
00943 # endif
00944 ;
00950 PANTHEIOS_CALL_DEPRECATED(void, pantheios_exit_process, pantheios_exitProcess) pantheios_exit_process(int code);
00951
00964 PANTHEIOS_CALL(void*) pantheios_malloc(size_t cb);
00965
00966
00967
00979 PANTHEIOS_CALL(void*) pantheios_inserterAllocate(size_t cb);
00985 PANTHEIOS_CALL(void) pantheios_inserterDeallocate(void* pv);
00986
01004 PANTHEIOS_CALL(pan_char_t const*) pantheios_getPad(size_t minimumWidth, size_t* actualWidth);
01005
01006 # endif
01007
01008 #if !defined(PANTHEIOS_NO_NAMESPACE)
01009 }
01010 #endif
01011
01012
01013
01014
01015
01016 #if !defined(PANTHEIOS_NO_NAMESPACE)
01017 namespace core
01018 {
01019 #endif
01020
01038 PANTHEIOS_CALL(int) pantheios_getNextBackEndId(void);
01039
01040 #if !defined(PANTHEIOS_NO_NAMESPACE)
01041 }
01042 #endif
01043
01057 PANTHEIOS_CALL(void) pantheios_logputs(
01058 pan_sev_t severity
01059 , pan_char_t const* message
01060 );
01061
01070 PANTHEIOS_CALL_DEPRECATED(void, pantheios_puts, pantheios_logputs) pantheios_puts(pan_sev_t severity, pan_char_t const* message);
01071
01072 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01073 PANTHEIOS_CALL(void) pantheios_logassertfail(
01074 pan_sev_t severity
01075 , char const* fileLine
01076 , char const* message
01077 );
01078 #endif
01079
01080
01081
01082
01083
01084 #if 0
01085
01102 PANTHEIOS_CALL(int) pantheios_backEndMap_lookup(int backEndId, void** ptoken);
01103
01116 PANTHEIOS_CALL(int) pantheios_backEndMap_add(int backEndId, void* token);
01117
01129 PANTHEIOS_CALL(int) pantheios_backEndMap_remove(int backEndId);
01130 #endif
01131
01132
01133
01134
01135
01136 #if defined(PANTHEIOS_DOCUMENTATION_SKIP_SECTION) || \
01137 !defined(PANTHEIOS_APPL_PARAMS_LIMIT)
01138
01144 # define PANTHEIOS_APPL_PARAMS_LIMIT PANTHEIOS_APPL_PARAMS_LIMIT_MAX_GENERATED
01145 #endif
01146
01147
01148 #if PANTHEIOS_APPL_PARAMS_LIMIT < 0 || \
01149 PANTHEIOS_APPL_PARAMS_LIMIT > PANTHEIOS_APPL_PARAMS_LIMIT_MAX_GENERATED
01150 # error PANTHEIOS_APPL_PARAMS_LIMIT Must be defined to be a number between 1 and PANTHEIOS_APPL_PARAMS_LIMIT_MAX_GENERATED
01151 #endif
01152
01153
01154
01155
01156
01157 #if !defined(PANTHEIOS_NO_NAMESPACE)
01158
01160 typedef pan_uint8_t uint8_t;
01162 typedef pan_uint16_t uint16_t;
01164 typedef pan_uint32_t uint32_t;
01166 typedef pan_uint64_t uint64_t;
01167
01169 typedef pan_sint8_t sint8_t;
01171 typedef pan_sint16_t sint16_t;
01173 typedef pan_sint32_t sint32_t;
01175 typedef pan_sint64_t sint64_t;
01176
01177
01178
01179
01180
01181 namespace util
01182 {
01183
01184 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01185
01186 inline void onBailOut(int severity, char const* message, char const* processId)
01187 {
01188 pantheios_onBailOut3(severity, message, processId);
01189 }
01190
01191 inline void onBailOut(int severity, char const* message, char const* processId, char const* qualifier)
01192 {
01193 pantheios_onBailOut4(severity, message, processId, qualifier);
01194 }
01195
01196 inline size_t strnlen(pan_char_t const* s, size_t len)
01197 {
01198 return pantheios_util_strnlen(s, len);
01199 }
01200
01201 # endif
01202
01203 }
01204
01205
01206
01207
01208
01213 inline int init()
01214 {
01215 return pantheios_init();
01216 }
01217
01222 inline void uninit()
01223 {
01224 pantheios_uninit();
01225 }
01226
01227 namespace core
01228 {
01229
01230 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01231
01232 inline int isInitialising()
01233 {
01234 return pantheios_isInitialising();
01235 }
01236
01237 inline int isInitialised()
01238 {
01239 return pantheios_isInitialised();
01240 }
01241
01242 # if defined(STLSOFT_COMPILER_IS_GCC)
01243 void exitProcess(int code)
01244 __attribute__((noreturn));
01245 # endif
01246
01247 # if defined(STLSOFT_COMPILER_IS_MSVC)
01248 __declspec(noreturn)
01249 # endif
01250 inline void exitProcess(int code)
01251 {
01252 pantheios_exitProcess(code);
01253 }
01254
01255 inline PANTHEIOS_DECLARE_DEPRECATION("function", exit_process, exitProcess) void exit_process(int code)
01256 {
01257 exitProcess(code);
01258 }
01259
01260 #ifndef malloc
01261 inline void* malloc(size_t cb)
01262 {
01263 return pantheios_malloc(cb);
01264 }
01265 #endif
01266
01267 inline void* inserterAllocate(size_t cb)
01268 {
01269 return pantheios_inserterAllocate(cb);
01270 }
01271
01272 inline void inserterDeallocate(void* pv)
01273 {
01274 pantheios_inserterDeallocate(pv);
01275 }
01276
01277 inline pan_char_t const* getPad(size_t minimumWidth, size_t* actualWidth)
01278 {
01279 return pantheios_getPad(minimumWidth, actualWidth);
01280 }
01281
01282 # endif
01283
01284 }
01285
01290 inline int isSeverityLogged(pan_sev_t severity)
01291 {
01292 return pantheios_isSeverityLogged(severity);
01293 }
01294
01295 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01296
01301 inline pan_char_t const* getProcessIdentity()
01302 {
01303 return pantheios_getProcessIdentity();
01304 }
01305 # endif
01306
01311 inline pan_char_t const* getStockSeverityString(pan_sev_t severity)
01312 {
01313 return pantheios_getStockSeverityString(severity);
01314 }
01315
01316 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01317
01318 inline PANTHEIOS_DECLARE_DEPRECATION("function", getSeverityString, getStockSeverityString) pan_char_t const* getSeverityString(pan_sev_t severity)
01319 {
01320 return getStockSeverityString(severity);
01321 }
01322
01323 # endif
01324
01329 inline size_t getStockSeverityStringLength(pan_sev_t severity)
01330 {
01331 return pantheios_getStockSeverityStringLength(severity);
01332 }
01333
01334 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01335
01336 inline PANTHEIOS_DECLARE_DEPRECATION("function", getSeverityStringLength, getStockSeverityStringLength) size_t getSeverityStringLength(pan_sev_t severity)
01337 {
01338 return getStockSeverityStringLength(severity);
01339 }
01340
01341 # endif
01342
01347 inline char const* getInitCodeString(int code)
01348 {
01349 return pantheios_getInitCodeString(code);
01350 }
01351
01352 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01353
01354 inline PANTHEIOS_DECLARE_DEPRECATION("function", getInitErrorString, getInitCodeString) char const* getInitErrorString(int code)
01355 {
01356 return getInitCodeString(code);
01357 }
01358
01359 # endif
01360
01365 inline size_t getInitCodeStringLength(int code)
01366 {
01367 return pantheios_getInitCodeStringLength(code);
01368 }
01369
01370 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01371
01372 inline PANTHEIOS_DECLARE_DEPRECATION("function", getInitErrorStringLength, getInitCodeStringLength) size_t getInitErrorStringLength(int code)
01373 {
01374 return getStockSeverityStringLength(code);
01375 }
01376
01377 # endif
01378
01379 namespace core
01380 {
01381
01387 inline int getNextBackEndId()
01388 {
01389 return pantheios_getNextBackEndId();
01390 }
01391
01392 }
01393
01398 inline void logputs(
01399 pan_sev_t severity
01400 , pan_char_t const* message
01401 )
01402 {
01403 pantheios_logputs(severity, message);
01404 }
01405
01414 inline PANTHEIOS_DECLARE_DEPRECATION("function", puts, logputs) void puts(pan_sev_t severity, pan_char_t const* message)
01415 {
01416 pantheios_logputs(severity, message);
01417 }
01418
01424 #if !defined(PANTHEIOS_DOCUMENTATION_SKIP_SECTION) && \
01425 defined(STLSOFT_COMPILER_IS_GCC)
01426 int logprintf(
01427 pan_sev_t severity
01428 , pan_char_t const* format
01429 , ...
01430 )
01431 __attribute__((format(printf,2,3)))
01432 ;
01433 #endif
01434
01435 inline int logprintf(
01436 pan_sev_t severity
01437 , pan_char_t const* format
01438 , ...
01439 )
01440 {
01441 va_list args;
01442 int ret;
01443
01444 va_start(args, format);
01445
01446 ret = pantheios_logvprintf(severity, format, args);
01447
01448 va_end(args);
01449
01450 return ret;
01451 }
01452
01453
01458 inline int logvprintf(
01459 pan_sev_t severity
01460 , pan_char_t const* format
01461 , va_list args
01462 )
01463 {
01464 return pantheios_logvprintf(severity, format, args);
01465 }
01466
01467 #endif
01468
01469
01470
01471
01472
01473
01474
01475 #ifdef __cplusplus
01476
01477 # if !defined(PANTHEIOS_NO_NAMESPACE)
01478 namespace shims
01479 {
01480 # endif
01481
01483 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01484 inline wchar_t const* c_str_ptr_w(pan_slice_t const& s)
01485 {
01486 return (0 == s.len) ? L"" : s.ptr;
01487 }
01488 # else
01489 inline char const* c_str_ptr_a(pan_slice_t const& s)
01490 {
01491 return (0 == s.len) ? "" : s.ptr;
01492 }
01493 # endif
01494
01495 inline pan_char_t const* c_str_ptr(pan_slice_t const& s)
01496 {
01497 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01498 return c_str_ptr_w(s);
01499 # else
01500 return c_str_ptr_a(s);
01501 # endif
01502 }
01503
01505 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01506 inline wchar_t const* c_str_ptr_null_w(pan_slice_t const& s)
01507 {
01508 return (0 != s.len) ? s.ptr : NULL;
01509 }
01510 # else
01511 inline char const* c_str_ptr_null_a(pan_slice_t const& s)
01512 {
01513 return (0 != s.len) ? s.ptr : NULL;
01514 }
01515 # endif
01516
01517 inline pan_char_t const* c_str_ptr_null(pan_slice_t const& s)
01518 {
01519 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01520 return c_str_ptr_null_w(s);
01521 # else
01522 return c_str_ptr_null_a(s);
01523 # endif
01524 }
01525
01527 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01528 inline wchar_t const* c_str_data_w(pan_slice_t const& s)
01529 {
01530 return c_str_ptr(s);
01531 }
01532 # else
01533 inline char const* c_str_data_a(pan_slice_t const& s)
01534 {
01535 return c_str_ptr(s);
01536 }
01537 # endif
01538
01539 inline pan_char_t const* c_str_data(pan_slice_t const& s)
01540 {
01541 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01542 return c_str_data_w(s);
01543 # else
01544 return c_str_data_a(s);
01545 # endif
01546 }
01547
01549 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01550 inline size_t c_str_len_w(pan_slice_t const& s)
01551 {
01552 return s.len;
01553 }
01554 # else
01555 inline size_t c_str_len_a(pan_slice_t const& s)
01556 {
01557 return s.len;
01558 }
01559 # endif
01560
01561 inline size_t c_str_len(pan_slice_t const& s)
01562 {
01563 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01564 return c_str_len_w(s);
01565 # else
01566 return c_str_len_a(s);
01567 # endif
01568 }
01569
01570
01571
01573 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01574 inline wchar_t const* c_str_ptr_w(pan_slice_t const* s)
01575 {
01576 return (NULL != s) ? c_str_ptr_w(*s) : L"";
01577 }
01578 # else
01579 inline char const* c_str_ptr_a(pan_slice_t const* s)
01580 {
01581 return (NULL != s) ? c_str_ptr_a(*s) : "";
01582 }
01583 # endif
01584
01585 inline pan_char_t const* c_str_ptr(pan_slice_t const* s)
01586 {
01587 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01588 return c_str_ptr_w(s);
01589 # else
01590 return c_str_ptr_a(s);
01591 # endif
01592 }
01593
01595 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01596 inline wchar_t const* c_str_ptr_null_w(pan_slice_t const* s)
01597 {
01598 return (NULL != s && (0 != s->len)) ? s->ptr : NULL;
01599 }
01600 # else
01601 inline char const* c_str_ptr_null_a(pan_slice_t const* s)
01602 {
01603 return (NULL != s && (0 != s->len)) ? s->ptr : NULL;
01604 }
01605 # endif
01606
01607 inline pan_char_t const* c_str_ptr_null(pan_slice_t const* s)
01608 {
01609 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01610 return c_str_ptr_null_w(s);
01611 # else
01612 return c_str_ptr_null_a(s);
01613 # endif
01614 }
01615
01617 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01618 inline wchar_t const* c_str_data_w(pan_slice_t const* s)
01619 {
01620 return c_str_ptr(s);
01621 }
01622 # else
01623 inline char const* c_str_data_a(pan_slice_t const* s)
01624 {
01625 return c_str_ptr(s);
01626 }
01627 # endif
01628
01629 inline pan_char_t const* c_str_data(pan_slice_t const* s)
01630 {
01631 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01632 return c_str_data_w(s);
01633 # else
01634 return c_str_data_a(s);
01635 # endif
01636 }
01637
01639 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01640 inline size_t c_str_len_w(pan_slice_t const* s)
01641 {
01642 return (NULL != s) ? s->len : 0;
01643 }
01644 # else
01645 inline size_t c_str_len_a(pan_slice_t const* s)
01646 {
01647 return (NULL != s) ? s->len : 0;
01648 }
01649 # endif
01650
01651 inline size_t c_str_len(pan_slice_t const* s)
01652 {
01653 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01654 return c_str_len_w(s);
01655 # else
01656 return c_str_len_a(s);
01657 # endif
01658 }
01659
01660
01661
01662 # ifndef PANTHEIOS_NO_STOCK_LEVELS
01663
01664 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01665 inline wchar_t const* c_str_data_w(pan_severity_t severity)
01666 {
01667 return pantheios_getStockSeverityString(severity);
01668 }
01669 # else
01670 inline char const* c_str_data_a(pan_severity_t severity)
01671 {
01672 return pantheios_getStockSeverityString(severity);
01673 }
01674 # endif
01675
01676 inline pan_char_t const* c_str_data(pan_severity_t severity)
01677 {
01678 return pantheios_getStockSeverityString(severity);
01679 }
01680
01682 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01683 inline size_t c_str_len_w(pan_severity_t severity)
01684 {
01685 return pantheios_getStockSeverityStringLength(severity);
01686 }
01687 # else
01688 inline size_t c_str_len_a(pan_severity_t severity)
01689 {
01690 return pantheios_getStockSeverityStringLength(severity);
01691 }
01692 # endif
01693
01694 inline size_t c_str_len(pan_severity_t severity)
01695 {
01696 return pantheios_getStockSeverityStringLength(severity);
01697 }
01698
01700 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01701 inline wchar_t const* c_str_ptr_w(pan_severity_t severity)
01702 {
01703 return pantheios_getStockSeverityString(severity);
01704 }
01705 # else
01706 inline char const* c_str_ptr_a(pan_severity_t severity)
01707 {
01708 return pantheios_getStockSeverityString(severity);
01709 }
01710 # endif
01711
01712 inline pan_char_t const* c_str_ptr(pan_severity_t severity)
01713 {
01714 return pantheios_getStockSeverityString(severity);
01715 }
01716
01718 # ifdef PANTHEIOS_USE_WIDE_STRINGS
01719 inline wchar_t const* c_str_ptr_null_w(pan_severity_t severity)
01720 {
01721 wchar_t const* s = pantheios_getStockSeverityString(severity);
01722
01723 return ('\0' != *s) ? s : NULL;
01724 }
01725 # else
01726 inline char const* c_str_ptr_null_a(pan_severity_t severity)
01727 {
01728 char const* s = pantheios_getStockSeverityString(severity);
01729
01730 return ('\0' != *s) ? s : NULL;
01731 }
01732 # endif
01733
01734 inline pan_char_t const* c_str_ptr_null(pan_severity_t severity)
01735 {
01736 pan_char_t const* s = pantheios_getStockSeverityString(severity);
01737
01738 return ('\0' != *s) ? s : NULL;
01739 }
01740 # endif
01741
01742 # if !defined(PANTHEIOS_NO_NAMESPACE)
01743 }
01744 # endif
01745
01746 #endif
01747
01748
01749
01750
01751
01752 #ifdef __cplusplus
01753 # ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01754
01755 inline size_t pan_slice_t::calc_length_n_(pan_char_t const* s, size_t len)
01756 {
01757 #if !defined(PANTHEIOS_NO_NAMESPACE)
01758 return pantheios::util::strnlen(s, len);
01759 #else
01760 return pantheios_util_strnlen(s, len);
01761 #endif
01762 }
01763
01764 inline pan_slice_t::pan_slice_t()
01765 : len(0)
01766 , ptr(NULL)
01767 {}
01768
01769 inline pan_slice_t::pan_slice_t(pan_char_t const* p, size_t l)
01770 : len(l)
01771 , ptr(p)
01772 {
01773 static size_t const topBit = size_t(0x01) << (sizeof(size_t) * 8 - 1);
01774
01775 if(topBit & len)
01776 {
01777 this->len = calc_length_n_(p, len);
01778 }
01779 }
01780
01781 inline pan_slice_t::pan_slice_t(pan_slice_t const& rhs)
01782 : len(rhs.len)
01783 , ptr(rhs.ptr)
01784 {}
01785 inline pan_slice_t& pan_slice_t::operator =(pan_slice_t const& rhs)
01786 {
01787 len = rhs.len;
01788 ptr = rhs.ptr;
01789
01790 return *this;
01791 }
01792
01793 inline pan_slice_t::pan_slice_t(int l, pan_char_t const* p)
01794 : len(calc_length_n_(p, static_cast<size_t>(l)))
01795 , ptr(p)
01796 {}
01797
01798 # endif
01799 #endif
01800
01801
01802
01803
01804
01805 #if !defined(PANTHEIOS_NO_NAMESPACE)
01806 }
01807
01808
01809 # ifndef PANTHEIOS_NO_STOCK_LEVELS
01810
01811
01812
01813
01814
01855 # define PANTHEIOS_SEV_EMERGENCY ::pantheios::SEV_EMERGENCY
01856 # define PANTHEIOS_SEV_ALERT ::pantheios::SEV_ALERT
01857 # define PANTHEIOS_SEV_CRITICAL ::pantheios::SEV_CRITICAL
01858 # define PANTHEIOS_SEV_ERROR ::pantheios::SEV_ERROR
01859 # define PANTHEIOS_SEV_WARNING ::pantheios::SEV_WARNING
01860 # define PANTHEIOS_SEV_NOTICE ::pantheios::SEV_NOTICE
01861 # define PANTHEIOS_SEV_INFORMATIONAL ::pantheios::SEV_INFORMATIONAL
01862 # define PANTHEIOS_SEV_DEBUG ::pantheios::SEV_DEBUG
01863
01864 # endif
01865
01866
01867 #ifdef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
01868
01881 #endif
01882 namespace stlsoft
01883 {
01884
01885 #ifdef PANTHEIOS_USE_WIDE_STRINGS
01886 using ::pantheios::shims::c_str_data_w;
01887 using ::pantheios::shims::c_str_len_w;
01888 using ::pantheios::shims::c_str_ptr_w;
01889 using ::pantheios::shims::c_str_ptr_null_w;
01890 #else
01891 using ::pantheios::shims::c_str_data_a;
01892 using ::pantheios::shims::c_str_len_a;
01893 using ::pantheios::shims::c_str_ptr_a;
01894 using ::pantheios::shims::c_str_ptr_null_a;
01895 #endif
01896 using ::pantheios::shims::c_str_data;
01897 using ::pantheios::shims::c_str_len;
01898 using ::pantheios::shims::c_str_ptr;
01899 using ::pantheios::shims::c_str_ptr_null;
01900
01901 }
01902
01903 #else
01904
01905 # ifdef __cplusplus
01906 namespace stlsoft
01907 {
01908
01909 #ifdef PANTHEIOS_USE_WIDE_STRINGS
01910 using ::c_str_data_w;
01911 using ::c_str_len_w;
01912 using ::c_str_ptr_w;
01913 using ::c_str_ptr_null_w;
01914 #else
01915 using ::c_str_data_a;
01916 using ::c_str_len_a;
01917 using ::c_str_ptr_a;
01918 using ::c_str_ptr_null_a;
01919 #endif
01920 using ::c_str_data;
01921 using ::c_str_len;
01922 using ::c_str_ptr;
01923 using ::c_str_ptr_null;
01924
01925 }
01926 # endif
01927
01928 #endif
01929
01930
01931
01932
01933
01934 #ifdef STLSOFT_PPF_pragma_once_SUPPORT
01935 # pragma once
01936 #endif
01937
01938
01939
01940 #endif
01941
01942