1 mike 1.18 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.29 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.18 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 karl 1.26 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.18 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
|
12 kumpf 1.29 //
|
13 karl 1.26 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 karl 1.26 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.18 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 mike 1.22 // Modified By: Rudy Schuet (rudy.schuet@compaq.com) 11/25/01
27 // added NSK platform support and PEGASUS_HAVE_NO_STD option
|
28 karl 1.24 // K. Schopmeyer. Added PEGASUS_TEST_EXCEPTION_DECLARATION Feb 27 2002
|
29 mike 1.18 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_Config_h
33 #define Pegasus_Config_h
34
35 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)
36 # include <Pegasus/Common/Platform_WIN32_IX86_MSVC.h>
37 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_GNU)
38 # include <Pegasus/Common/Platform_LINUX_IX86_GNU.h>
39 #elif defined (PEGASUS_PLATFORM_AIX_RS_IBMCXX)
40 # include <Pegasus/Common/Platform_AIX_RS_IBMCXX.h>
41 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_ACC)
42 # include <Pegasus/Common/Platform_HPUX_PARISC_ACC.h>
|
43 mike 1.19 #elif defined (PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX)
44 # include <Pegasus/Common/Platform_TRU64_ALPHA_DECCXX.h>
|
45 mike 1.21 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_GNU)
46 # include <Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h>
|
47 mike 1.22 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
48 # include <Pegasus/Common/Platform_ZOS_ZSERIES_IBM.h>
49 #elif defined (PEGASUS_PLATFORM_NSK_NONSTOP_NMCPLUS)
50 # include <Pegasus/Common/Platform_NSK_NONSTOP_NMCPLUS.h>
|
51 kumpf 1.27 #elif defined (PEGASUS_PLATFORM_LINUX_IA64_GNU)
52 # include <Pegasus/Common/Platform_LINUX_IA64_GNU.h>
|
53 mike 1.18 #else
54 # error "<Pegasus/Common/Config.h>: Unsupported Platform"
55 #endif
56
|
57 mike 1.22 #include <iostream>
58 #include <cstdlib>
59
60
|
61 mike 1.18 #ifdef PEGASUS_HAVE_NAMESPACES
62 # define PEGASUS_NAMESPACE_BEGIN namespace Pegasus {
63 # define PEGASUS_NAMESPACE_END }
|
64 mike 1.22
65 #ifndef PEGASUS_HAVE_NO_STD
|
66 mike 1.18 # define PEGASUS_STD(X) std::X
67 # define PEGASUS_USING_STD using namespace std
|
68 mike 1.22 #else
69 # define PEGASUS_STD(X) X
70 # define PEGASUS_USING_STD
71 #endif
|
72 mike 1.18 # define PEGASUS_USING_PEGASUS using namespace Pegasus
73 #else
74 # define PEGASUS_NAMESPACE_BEGIN /* empty */
75 # define PEGASUS_NAMESPACE_END /* empty */
76 # define PEGASUS_STD(X) X
77 # define PEGASUS_USING_STD
78 # define PEGASUS_USING_PEGASUS
79 #endif
80
81 #ifdef PEGASUS_HAVE_EXPLICIT
82 # define PEGASUS_EXPLICIT explicit
83 #else
84 # define PEGASUS_EXPLICIT /* empty */
85 #endif
86
87 #ifdef PEGASUS_HAVE_MUTABLE
88 # define PEGASUS_MUTABLE mutable
89 #else
90 # define PEGASUS_MUTABLE /* empty */
91 #endif
92
93 mike 1.18 #ifndef PEGASUS_HAVE_FOR_SCOPE
94 # define for if (0) ; else for
95 #endif
96
97 #ifdef PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
98 # define PEGASUS_TEMPLATE_SPECIALIZATION template <>
99 #else
100 # define PEGASUS_TEMPLATE_SPECIALIZATION
|
101 karl 1.24 #endif
102
|
103 mike 1.18
104 PEGASUS_NAMESPACE_BEGIN
105
106 #ifdef PEGASUS_HAVE_BOOLEAN
107 typedef bool Boolean;
108 #else
109 # include <Pegasus/Common/Boolean.h>
110 #endif
111
112 typedef unsigned char Uint8;
113 typedef char Sint8;
114 typedef unsigned short Uint16;
115 typedef short Sint16;
116 typedef unsigned int Uint32;
117 typedef int Sint32;
118 typedef float Real32;
119 typedef double Real64;
120 typedef PEGASUS_UINT64 Uint64;
121 typedef PEGASUS_SINT64 Sint64;
122
123 #define PEGASUS_NOT_FOUND Uint32(-1)
124 mike 1.18 #define PEG_NOT_FOUND Uint32(-1)
125
126 PEGASUS_NAMESPACE_END
127
128 #define PEGASUS_TRACE \
129 PEGASUS_STD(cout) << __FILE__ << '(' << __LINE__ << ')' << PEGASUS_STD(endl)
130
131 #define PEGASUS_OUT(X) \
132 PEGASUS_STD(cout) << #X << "=[" << X << "]" << PEGASUS_STD(endl)
133
|
134 mike 1.20 #ifdef PEGASUS_SUPPRESS_UNREACHABLE_STATEMENTS
135 # define PEGASUS_UNREACHABLE(CODE)
136 #else
137 # define PEGASUS_UNREACHABLE(CODE) CODE
138 #endif
139
|
140 sage 1.25 // used for zOS only
141 #ifndef PEGASUS_STATIC_CDECL
142 #define PEGASUS_STATIC_CDECL
143 #endif
144
|
145 mike 1.18 #endif /* Pegasus_Config_h */
|