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
00029
00030
00031
00032
00033
00034 #ifndef Pegasus_Config_h
00035 #define Pegasus_Config_h
00036
00037 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)
00038 # include <Pegasus/Common/Platform_WIN32_IX86_MSVC.h>
00039 #elif defined(PEGASUS_PLATFORM_WIN64_IA64_MSVC)
00040 # include <Pegasus/Common/Platform_WIN64_IA64_MSVC.h>
00041 #elif defined(PEGASUS_PLATFORM_WIN64_X86_64_MSVC)
00042 # include <Pegasus/Common/Platform_WIN64_X86_64_MSVC.h>
00043 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_GNU)
00044 # include <Pegasus/Common/Platform_LINUX_IX86_GNU.h>
00045 #elif defined (PEGASUS_PLATFORM_LINUX_XSCALE_GNU)
00046 # include <Pegasus/Common/Platform_LINUX_XSCALE_GNU.h>
00047 #elif defined (PEGASUS_PLATFORM_PASE_ISERIES_IBMCXX)
00048 #include <Pegasus/Common/Platform_PASE_ISERIES_IBMCXX.h>
00049 #elif defined (PEGASUS_PLATFORM_AIX_RS_IBMCXX)
00050 # include <Pegasus/Common/Platform_AIX_RS_IBMCXX.h>
00051 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_ACC)
00052 # include <Pegasus/Common/Platform_HPUX_PARISC_ACC.h>
00053 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_GNU)
00054 # include <Pegasus/Common/Platform_HPUX_PARISC_GNU.h>
00055 #elif defined (PEGASUS_PLATFORM_HPUX_IA64_ACC)
00056 # include <Pegasus/Common/Platform_HPUX_IA64_ACC.h>
00057 #elif defined (PEGASUS_PLATFORM_HPUX_IA64_GNU)
00058 # include <Pegasus/Common/Platform_HPUX_IA64_GNU.h>
00059 #elif defined (PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX)
00060 # include <Pegasus/Common/Platform_TRU64_ALPHA_DECCXX.h>
00061 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_GNU)
00062 # include <Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h>
00063 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_CC)
00064 # include <Pegasus/Common/Platform_SOLARIS_SPARC_CC.h>
00065 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_64_CC)
00066 # include <Pegasus/Common/Platform_SOLARIS_SPARC_CC_64.h>
00067 #elif defined (PEGASUS_PLATFORM_SOLARIS_IX86_CC)
00068 # include <Pegasus/Common/Platform_SOLARIS_IX86_CC.h>
00069 #elif defined (PEGASUS_PLATFORM_SOLARIS_X86_64_CC)
00070 # include <Pegasus/Common/Platform_SOLARIS_X86_64_CC.h>
00071 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
00072 # include <Pegasus/Common/Platform_ZOS_ZSERIES_IBM.h>
00073 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES64_IBM)
00074 # include <Pegasus/Common/Platform_ZOS_ZSERIES64_IBM.h>
00075 #elif defined (PEGASUS_PLATFORM_LINUX_IA64_GNU)
00076 # include <Pegasus/Common/Platform_LINUX_IA64_GNU.h>
00077 #elif defined (PEGASUS_PLATFORM_LINUX_X86_64_GNU)
00078 # include <Pegasus/Common/Platform_LINUX_X86_64_GNU.h>
00079 #elif defined (PEGASUS_PLATFORM_LINUX_PPC_GNU)
00080 # include <Pegasus/Common/Platform_LINUX_PPC_GNU.h>
00081 #elif defined (PEGASUS_PLATFORM_LINUX_PPC64_GNU)
00082 # include <Pegasus/Common/Platform_LINUX_PPC64_GNU.h>
00083 #elif defined (PEGASUS_PLATFORM_LINUX_PPC_E500_GNU)
00084 # include <Pegasus/Common/Platform_LINUX_PPC_E500_GNU.h>
00085 #elif defined (PEGASUS_PLATFORM_LINUX_SPARCV9_GNU)
00086 # include <Pegasus/Common/Platform_LINUX_SPARCV9_GNU.h>
00087 #elif defined (PEGASUS_PLATFORM_LINUX_SPARC64_GNU)
00088 # include <Pegasus/Common/Platform_LINUX_SPARC64_GNU.h>
00089 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES_GNU)
00090 # include <Pegasus/Common/Platform_LINUX_ZSERIES_GNU.h>
00091 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES64_GNU)
00092 # include <Pegasus/Common/Platform_LINUX_ZSERIES64_GNU.h>
00093 #elif defined (PEGASUS_PLATFORM_DARWIN_PPC_GNU)
00094 # include <Pegasus/Common/Platform_DARWIN_PPC_GNU.h>
00095 #elif defined (PEGASUS_PLATFORM_DARWIN_IX86_GNU)
00096 # include <Pegasus/Common/Platform_DARWIN_IX86_GNU.h>
00097 #elif defined (PEGASUS_PLATFORM_VMS_ALPHA_DECCXX)
00098 # include <Pegasus/Common/Platform_VMS_ALPHA_DECCXX.h>
00099 #elif defined (PEGASUS_PLATFORM_VMS_IA64_DECCXX)
00100 # include <Pegasus/Common/Platform_VMS_IA64_DECCXX.h>
00101 #elif defined (PEGASUS_PLATFORM_LINUX_XSCALE_GNU)
00102 # include <Pegasus/Common/Platform_LINUX_XSCALE_GNU.h>
00103 #elif defined (PEGASUS_PLATFORM_LINUX_X86_64_CLANG)
00104 # include <Pegasus/Common/Platform_LINUX_X86_64_CLANG.h>
00105 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_CLANG)
00106 # include <Pegasus/Common/Platform_LINUX_IX86_CLANG.h>
00107 #else
00108 # error "<Pegasus/Common/Config.h>: Unsupported Platform"
00109 #endif
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123 #if defined(__GNUC__)
00124 #define GCC_VERSION (__GNUC__ * 10000 \
00125 + __GNUC_MINOR__ * 100 \
00126 + __GNUC_PATCHLEVEL__)
00127
00128
00129
00130
00131
00132
00133 #endif
00134
00135
00136 #ifdef __cplusplus
00137 #include <cstdlib>
00138 #endif
00139
00140 #ifndef PEGASUS_IMPORT
00141 # define PEGASUS_IMPORT
00142 #endif
00143
00144 #ifndef PEGASUS_EXPORT
00145 # define PEGASUS_EXPORT
00146 #endif
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173 #ifndef PEGASUS_HIDDEN_LINKAGE
00174 # define PEGASUS_HIDDEN_LINKAGE
00175 #endif
00176
00177 #ifdef PEGASUS_HAVE_NAMESPACES
00178 #ifdef __cplusplus
00179 # define PEGASUS_NAMESPACE_BEGIN namespace Pegasus {
00180 # define PEGASUS_NAMESPACE_END }
00181 # define PEGASUS_NAMESPACE(X) Pegasus::X
00182
00183 #ifndef PEGASUS_HAVE_NO_STD
00184 # define PEGASUS_STD(X) std::X
00185 # define PEGASUS_USING_STD using namespace std
00186 #else
00187 # define PEGASUS_STD(X) X
00188 # define PEGASUS_USING_STD
00189 #endif
00190 # define PEGASUS_USING_PEGASUS using namespace Pegasus
00191 #else
00192 # define PEGASUS_NAMESPACE_BEGIN
00193 # define PEGASUS_NAMESPACE_END
00194 # define PEGASUS_NAMESPACE(X) X
00195 # define PEGASUS_STD(X) X
00196 # define PEGASUS_USING_STD
00197 # define PEGASUS_USING_PEGASUS
00198 #endif
00199 #else
00200 # define PEGASUS_NAMESPACE_BEGIN
00201 # define PEGASUS_NAMESPACE_END
00202 # define PEGASUS_NAMESPACE(X) X
00203 # define PEGASUS_STD(X) X
00204 # define PEGASUS_USING_STD
00205 # define PEGASUS_USING_PEGASUS
00206 #endif
00207
00208 #ifdef PEGASUS_HAVE_EXPLICIT
00209 #ifdef __cplusplus
00210 # define PEGASUS_EXPLICIT explicit
00211 #else
00212 # define PEGASUS_EXPLICIT
00213 #endif
00214 #else
00215 # define PEGASUS_EXPLICIT
00216 #endif
00217
00218 #ifndef PEGASUS_HAVE_FOR_SCOPE
00219 # define for if (0) ; else for
00220 #endif
00221
00222 #ifdef PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
00223 #ifdef __cplusplus
00224 # define PEGASUS_TEMPLATE_SPECIALIZATION template <>
00225 #else
00226 # define PEGASUS_TEMPLATE_SPECIALIZATION
00227 #endif
00228 #else
00229 # define PEGASUS_TEMPLATE_SPECIALIZATION
00230 #endif
00231
00232 #ifdef PEGASUS_HAVE_IOS_BINARY
00233 #ifdef __cplusplus
00234 #define PEGASUS_IOS_BINARY ,std::ios::binary
00235 #define PEGASUS_OR_IOS_BINARY | std::ios::binary
00236 #else
00237 #define PEGASUS_IOS_BINARY
00238 #define PEGASUS_OR_IOS_BINARY
00239 #endif
00240 #else
00241 #define PEGASUS_IOS_BINARY
00242 #define PEGASUS_OR_IOS_BINARY
00243 #endif
00244
00245 #ifndef PEGASUS_SINT64_LITERAL
00246 #define PEGASUS_SINT64_LITERAL(X) (Sint64 (X##LL))
00247 #endif
00248 #ifndef PEGASUS_UINT64_LITERAL
00249 #define PEGASUS_UINT64_LITERAL(X) (Uint64 (X##ULL))
00250 #endif
00251
00252
00253 #ifndef PEGASUS_64BIT_CONVERSION_WIDTH
00254 #define PEGASUS_64BIT_CONVERSION_WIDTH "ll"
00255 #endif
00256
00257 #ifndef PEGASUS_MAXHOSTNAMELEN
00258 # ifdef _POSIX_HOST_NAME_MAX
00259 # define PEGASUS_MAXHOSTNAMELEN _POSIX_HOST_NAME_MAX
00260 # else
00261 # define PEGASUS_MAXHOSTNAMELEN MAXHOSTNAMELEN
00262 # endif
00263 #endif
00264
00265 #ifdef __cplusplus
00266 PEGASUS_NAMESPACE_BEGIN
00267
00268 typedef bool Boolean;
00269 typedef unsigned char Uint8;
00270 typedef signed char Sint8;
00271 typedef unsigned short Uint16;
00272 typedef signed short Sint16;
00273 typedef unsigned int Uint32;
00274 typedef signed int Sint32;
00275 typedef float Real32;
00276 typedef double Real64;
00277 typedef PEGASUS_UINT64 Uint64;
00278 typedef PEGASUS_SINT64 Sint64;
00279
00280 #define PEG_NOT_FOUND Uint32(-1)
00281
00282 PEGASUS_NAMESPACE_END
00283 #endif
00284
00285 #ifdef PEGASUS_SUPPRESS_UNREACHABLE_STATEMENTS
00286 # define PEGASUS_UNREACHABLE(CODE)
00287 #else
00288 # define PEGASUS_UNREACHABLE(CODE) CODE
00289 #endif
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310 #if defined(__GNUC__) && (__GNUC__ >= 4)
00311 # define PEGASUS_FORMAT(A1, A2) __attribute__((format (printf, A1, A2)))
00312 #else
00313 # define PEGASUS_FORMAT(A1, A2)
00314 #endif
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326 #ifndef PEGASUS_INITIAL_THREADSTACK_SIZE
00327 # define PEGASUS_INITIAL_THREADSTACK_SIZE 256*1024
00328 #endif
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339 #ifndef PEGASUS_PG_OBJECTMANAGER_ELEMENTNAME
00340 # ifdef PEGASUS_FLAVOR
00341 # define PEGASUS_PG_OBJECTMANAGER_ELEMENTNAME PEGASUS_FLAVOR"-pegasus"
00342 # else
00343 # define PEGASUS_PG_OBJECTMANAGER_ELEMENTNAME "Pegasus"
00344 # endif
00345 #endif
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355 #ifndef PEGASUS_INSTANCEID_GLOBAL_PREFIX
00356 # ifdef PEGASUS_FLAVOR
00357 # define PEGASUS_INSTANCEID_GLOBAL_PREFIX "PG-"PEGASUS_FLAVOR
00358 # else
00359 # define PEGASUS_INSTANCEID_GLOBAL_PREFIX "PG"
00360 # endif
00361 #endif
00362
00363 #endif