00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __CCXX_CONFIG_H__
00017 #define __CCXX_CONFIG_H__
00018
00019
00020
00021
00022 #define HAVE_UNISTD_H 1
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #define RETSIGTYPE void
00036
00037
00038 #define TIME_WITH_SYS_TIME 1
00039
00040
00041 #define __DLL
00042 #define __EXPORT
00043 #define __MEMBER_EXPORT
00044
00045 #define __NAMESPACES__ 1
00046 #define HAVE_BOOL_TYPE 1
00047 #define HAVE_EXCEPTION_HANDLING 1
00048 #define HAVE_ENDIAN_H 1
00049
00050 #define HAVE_SYS_FCNTL_H 1
00051 #define HAVE_FCNTL_H 1
00052 #define HAVE_SYS_TYPES_STD 1
00053 #define HAVE_SYS_TYPES_64 1
00054 #define HAVE_LONG_LONG 1
00055
00056 #define HAVE_SYS_TYPES_H 1
00057 #define HAVE_SIGACTION 1
00058
00059 #define HAVE_STRCASECMP 1
00060 #define HAVE_STRDUP 1
00061 #define HAVE_SETITIMER 1
00062 #define HAVE_STRINGS_H 1
00063
00064 #define HAVE_SIGWAIT2 1
00065 #define HAVE_MODULES 1
00066 #define HAVE_DLFCN_H 1
00067 #define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
00068 #define HAVE_PTHREAD_MUTEXATTR_SETTYPE 1
00069
00070
00071 #define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
00072
00073
00074 #define HAVE_PTHREAD_YIELD 1
00075 #define HAVE_PTHREAD_NANOSLEEP 1
00076 #define HAVE_PTHREAD_CANCEL 1
00077 #define HAVE_PTHREAD_SETCANCELTYPE 1
00078
00079 #define HAVE_PTHREAD_RWLOCK 1
00080 #define HAVE_PREAD_PWRITE 1
00081 #define HAVE_ASM_ATOMIC_H 1
00082
00083 #define HAVE_SYS_TIME_H 1
00084 #define HAVE_GETOPT_H 1
00085 #define HAVE_GETOPT_LONG 1
00086 #define HAVE_LIBXML 1
00087 #define TIME_WITH_SYS_TIME 1
00088 #define _POSIX_PII_SOCKET
00089 #define HAVE_SYS_SOCKET_H 1
00090 #define HAVE_ARPA_INET_H 1
00091 #define HAVE_NETINET_IN_SYSTM_H 1
00092 #define HAVE_NETINET_IP_H 1
00093 #define HAVE_SYS_UN_H 1
00094
00095 #define HAVE_SYS_SELECT_H 1
00096 #define HAVE_INET_ATON 1
00097 #define HAVE_INET_SOCKETS 1
00098 #define HAVE_UNIX_SOCKETS 1
00099 #define HAVE_SOCKLEN_T 1
00100
00101
00102 #define HAVE_SYS_POLL_H 1
00103 #define HAVE_POLL_H 1
00104 #define HAVE_ZLIB_H 1
00105
00106 #define COMMON_XML_PARSING 1
00107 #define HAVE_FEATURES_H 1
00108 #define HAVE_LOCALTIME_R 1
00109 #define HAVE_STRTOK_R 1
00110 #define HAVE_SETENV 1
00111 #define HAVE_OLD_IOSTREAM 1
00112
00113
00114
00115 #define HAVE_GETOPT_LONG 1
00116
00117
00118 #define HAVE_POLL 1
00119
00120
00121 #define HAVE_SETENV 1
00122
00123
00124 #define HAVE_SETITIMER 1
00125
00126
00127 #define HAVE_SIGACTION 1
00128
00129
00130 #define HAVE_STRCASECMP 1
00131
00132
00133 #define HAVE_STRDUP 1
00134
00135
00136 #define HAVE_ARPA_INET_H 1
00137
00138
00139
00140
00141
00142 #define HAVE_DLFCN_H 1
00143
00144
00145 #define HAVE_FCNTL_H 1
00146
00147
00148 #define HAVE_FEATURES_H 1
00149
00150
00151 #define HAVE_GETOPT_H 1
00152
00153
00154 #define HAVE_NETINET_IN_SYSTM_H 1
00155
00156
00157 #define HAVE_NETINET_IP_H 1
00158
00159
00160 #define HAVE_POLL_H 1
00161
00162
00163 #define HAVE_PTHREAD_H 1
00164
00165
00166
00167
00168
00169 #define HAVE_SCHED_H 1
00170
00171
00172
00173
00174
00175 #define HAVE_SEMAPHORE_H 1
00176
00177
00178 #define HAVE_STRINGS_H 1
00179
00180
00181 #define HAVE_SYS_FCNTL_H 1
00182
00183
00184 #define HAVE_SYS_FILE_H 1
00185
00186
00187
00188
00189
00190 #define HAVE_SYS_POLL_H 1
00191
00192
00193
00194
00195
00196 #define HAVE_SYS_SELECT_H 1
00197
00198
00199 #define HAVE_SYS_SOCKET_H 1
00200
00201
00202
00203
00204
00205 #define HAVE_SYS_TIME_H 1
00206
00207
00208 #define HAVE_SYS_TYPES_H 1
00209
00210
00211 #define HAVE_SYS_UN_H 1
00212
00213
00214
00215
00216
00217 #define HAVE_UNISTD_H 1
00218
00219
00220
00221
00222
00223 #define HAVE_ZLIB_H 1
00224
00225
00226
00227
00228
00229 #define PACKAGE "CommonC++"
00230
00231
00232 #define VERSION "1.6.1"
00233
00234
00235 #ifdef _AIX
00236 #ifndef _ALL_SOURCE
00237 #define _ALL_SOURCE
00238 #endif
00239 #endif
00240
00241 #ifndef _REENTRANT
00242 #define _REENTRANT 1
00243 #endif
00244 #ifndef _THREAD_SAFE
00245 #define _THREAD_SAFE 1
00246 #endif
00247 #ifndef _GNU_SOURCE
00248 #define _GNU_SOURCE 1
00249 #endif
00250 #ifndef _XOPEN_SOURCE
00251 #define _XOPEN_SOURCE 500
00252 #endif
00253 #ifndef _POSIX_PTHREAD_SEMANTICS
00254 #define _POSIX_PTHREAD_SEMANTICS
00255 #endif
00256
00257 #ifdef __hpux
00258 #ifndef _XOPEN_SOURCE_EXTENDED
00259 #define _XOPEN_SOURCE_EXTENDED
00260 #endif
00261 #ifdef mutable
00262
00263 #endif
00264 #endif
00265
00266 #ifdef HAVE_FEATURES_H
00267 #include <features.h>
00268 #endif
00269
00270
00271
00272 #ifdef HAVE_ENDIAN_H
00273 #include <endian.h>
00274 #else
00275 #define __LITTLE_ENDIAN 1234
00276 #define __BIG_ENDIAN 4321
00277 #endif
00278
00279
00280 #if defined(__sun) || defined(__SUN__)
00281 #define __EXTENSIONS__
00282 #endif
00283
00284 #ifndef HAVE_FCNTL_H
00285 #ifdef HAVE_SYS_FCNTL_H
00286 #include <sys/fcntl.h>
00287 #endif
00288 #else
00289 #include <fcntl.h>
00290 #ifndef O_NDELAY
00291 #ifdef HAVE_SYS_FCNTL_H
00292 #include <sys/fcntl.h>
00293 #endif
00294 #endif
00295 #endif
00296
00297 #ifdef HAVE_UNISTD_H
00298 #include <unistd.h>
00299 #endif
00300
00301
00302 #ifdef HAVE_SYS_TYPES_H
00303 #include <sys/types.h>
00304 #endif
00305 #ifdef HAVE_SYS_TYPES_STD
00306 typedef int8_t int8;
00307 typedef u_int8_t uint8;
00308 typedef int16_t int16;
00309 typedef u_int16_t uint16;
00310 typedef int32_t int32;
00311 typedef u_int32_t uint32;
00312 #ifdef HAVE_SYS_TYPES_64
00313 #define HAVE_64_BITS
00314 typedef int64_t int64;
00315 typedef u_int64_t uint64;
00316 #endif
00317 #else
00318 typedef char int8;
00319 typedef unsigned char uint8;
00320 typedef short int16;
00321 typedef unsigned short uint16;
00322 typedef int int32;
00323 typedef unsigned int uint32;
00324 #endif
00325 #ifndef HAVE_SYS_TYPES_64
00326 #if defined(HAVE_LONG_LONG) || defined(_LONGLONG)
00327 #define HAVE_64_BITS
00328 typedef long long int64;
00329 typedef unsigned long long uint64;
00330 #else
00331 #ifdef __arch64__
00332 #define HAVE_64_BITS
00333 typedef long int int64;
00334 typedef unsigned long int uint64;
00335 #endif
00336 #endif
00337 #endif
00338
00339
00340 #ifdef HAVE_SIGACTION
00341 #ifdef HAVE_BSD_SIGNAL_H
00342
00343 #endif
00344 #endif
00345
00346 #ifdef HAVE_BSD_SIGNAL_H
00347 #include <bsd/signal.h>
00348 #else
00349 #include <signal.h>
00350 #endif
00351
00352 #ifndef SA_ONESHOT
00353 #define SA_ONESHOT SA_RESETHAND
00354 #endif
00355
00356
00357 #include <string.h>
00358 #ifdef HAVE_STRINGS_H
00359 #include <strings.h>
00360 #endif
00361
00362 #ifdef HAVE_STRCASECMP
00363 #ifndef stricmp
00364 #define stricmp(x,y) strcasecmp(x,y)
00365 #endif
00366 #ifndef strnicmp
00367 #define strnicmp(x,y,n) strncasecmp(x,y,n)
00368 #endif
00369 #endif
00370
00371 #ifndef HAVE_STRDUP
00372 #define strdup(s) (char *)malloc(strlen(s))
00373 #endif
00374
00375
00376 #ifdef HAVE_THREAD_H
00377 #include "/usr/include/thread.h"
00378 #if defined(i386) && defined(__svr4__) && !defined(__sun)
00379 #define _THR_UNIXWARE
00380 #endif
00381 #if defined(__SVR4) && defined(__sun)
00382 #define _THR_SUNOS5
00383 #else
00384 #if defined(__SVR4__) && defined(__SUN__)
00385 #define _THR_SUNOS5
00386 #endif
00387 #endif
00388 #endif
00389
00390 #ifdef HAVE_SYS_ATOMIC_H
00391 #include <sys/atomic.h>
00392 #define HAVE_ATOMIC
00393 #else
00394 #ifdef HAVE_ASM_ATOMIC_H
00395 #include <asm/atomic.h>
00396 #define HAVE_ATOMIC
00397 #endif
00398 #endif
00399
00400 #if defined(HAVE_PTHREAD_H) && ( defined(_THREAD_SAFE) || defined(_REENTRANT) )
00401
00402 #include <pthread.h>
00403
00404 #ifdef HAVE_PTHREAD_NP_H
00405 #include <pthread_np.h>
00406 #endif
00407 #ifdef HAVE_SEMAPHORE_H
00408 #include <semaphore.h>
00409 #endif
00410 #ifdef _POSIX_PRIORITY_SCHEDULING
00411 #ifdef HAVE_SCHED_H
00412 #include <sched.h>
00413 #else
00414 #ifdef HAVE_SYS_SCHED_H
00415 #include <sys/sched.h>
00416 #endif
00417 #endif
00418 #endif
00419
00420 #define __PTHREAD_H__
00421 #ifndef PTHREAD_MUTEXTYPE_RECURSIVE
00422 #ifdef MUTEX_TYPE_COUNTING_FAST
00423 #define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
00424 #endif
00425 #endif
00426 #ifndef PTHREAD_MUTEXTYPE_RECURSIVE
00427 #ifdef PTHREAD_MUTEX_RECURSIVE
00428 #define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
00429 #endif
00430 #endif
00431 #ifndef HAVE_PTHREAD_MUTEXATTR_SETTYPE
00432 #if HAVE_PTHREAD_MUTEXATTR_SETKIND_NP
00433 #ifndef PTHREAD_MUTEXTYPE_RECURSIVE
00434 #define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
00435 #endif
00436 #define pthread_mutexattr_gettype(x, y) pthread_mutexattr_getkind_np(x, y)
00437 #define pthread_mutexattr_settype(x, y) pthread_mutexattr_setkind_np(x, y)
00438 #endif
00439 #if HAVE_PTHREAD_MUTEXATTR_SETTYPE_NP
00440 #ifndef PTHREAD_MUTEXTYPE_RECURSIVE
00441 #define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
00442 #endif
00443 #define pthread_mutexattr_settype(x, y) pthread_mutexattr_settype_np(x, y)
00444 #define pthread_mutexattr_gettype(x, y) pthread_mutexattr_gettype_np(x, y)
00445 #endif
00446 #endif
00447
00448 #ifndef HAVE_PTHREAD_YIELD
00449 #ifdef HAVE_PTHREAD_SCHED_YIELD
00450 #define pthread_yield() sched_yield()
00451 #define HAVE_PTHREAD_YIELD
00452 #endif
00453 #endif
00454
00455 #ifndef HAVE_PTHREAD_DELAY
00456 #ifdef HAVE_PTHREAD_DELAY_NP
00457 #define HAVE_PTHREAD_DELAY
00458 #define pthread_delay(x) pthread_delay_np(x)
00459 #endif
00460 #ifdef HAVE_PTHREAD_NANOSLEEP
00461 #ifndef HAVE_PTHREAD_DELAY
00462 #define HAVE_PTHREAD_DELAY
00463 #define pthread_delay(x) nanosleep(x, NULL)
00464 #endif
00465 #endif
00466 #endif
00467
00468 #ifdef HAVE_PTHREAD_ATTR_SETSTACK
00469 #ifndef PTHREAD_STACK_MIN
00470 #define PTHREAD_STACK_MIN 32768
00471 #endif
00472 #endif
00473
00474 #ifndef HAVE_PTHREAD_CANCEL
00475 #ifdef SIGCANCEL
00476 #define _SIG_THREAD_CANCEL SIGCANCEL
00477 #else
00478 #define _SIG_THREAD_CANCEL SIGQUIT
00479 #endif
00480 #define pthread_cancel(x) pthread_kill(x, _SIG_THREAD_CANCEL)
00481 #endif
00482
00483 #ifndef HAVE_PTHREAD_SETCANCELTYPE
00484 #ifdef HAVE_PTHREAD_SETCANCEL
00485 enum
00486 { PTHREAD_CANCEL_ASYNCHRONOUS = CANCEL_ON,
00487 PTHREAD_CANCEL_DEFERRED = CANCEL_OFF};
00488 enum
00489 { PTHREAD_CANCEL_ENABLE = CANCEL_ON,
00490 PTHREAD_CANCEL_DISABLE = CANCEL_OFF};
00491 #define pthread_setcancelstate(x, y) \
00492 (y == NULL) ? pthread_setcancel(x) : *y = pthread_setcancel
00493 #define pthread_setcanceltype(x, y) \
00494 (y == NULL) ? pthread_setasynccancel(x) | *y = pthread_setasynccancel(x)
00495 #else
00496 #define pthread_setcanceltype(x, y)
00497 #define pthread_setcancelstate(x, y)
00498 #endif
00499 #endif
00500
00501 #endif
00502
00503
00504 #if TIME_WITH_SYS_TIME
00505 #include <sys/time.h>
00506 #include <time.h>
00507 #else
00508 #if HAVE_SYS_TIME_H
00509 #include <sys/time.h>
00510 #else
00511 #include <time.h>
00512 #endif
00513 #endif
00514
00515 #ifndef HAVE_STRTOK_R
00516 #define strtok_r(s, d, r) strtok(s, d)
00517 #endif
00518
00519 #ifndef HAVE_LOCALTIME_R
00520 #define localtime_r(t, b) localtime(t)
00521 #define ctime_r(t, b) ctime(t)
00522 #define gmtime_r(t, b) gmtime(t)
00523 #define asctime_r(t, b) asctime(t)
00524 #endif
00525
00526 #ifdef HAVE_SYS_LIBCSYS_H
00527 #include <sys/libcsys.h>
00528 #endif
00529
00530 #ifdef HAVE_WINSOCK_H
00531 #include <winsock.h>
00532 #else
00533 #ifdef HAVE_SYS_SOCKET_H
00534 #include <sys/socket.h>
00535 #ifdef HAVE_SELECT_H
00536 #include <select.h>
00537 #else
00538 #ifdef HAVE_SYS_SELECT_H
00539 #include <sys/select.h>
00540 #endif
00541 #endif
00542 #ifdef HAVE_ARPA_INET_H
00543 #include <netinet/in.h>
00544 #include <arpa/inet.h>
00545 #include <netdb.h>
00546 #endif
00547 #ifdef HAVE_NETINET_IN_SYSTM_H
00548 #include <netinet/in_systm.h>
00549 #endif
00550 #ifdef HAVE_NETINET_IP_H
00551 #include <netinet/ip.h>
00552 #endif
00553 #ifdef HAVE_SYS_UN_H
00554 #include <sys/un.h>
00555 #endif
00556 #endif
00557 #endif
00558
00559 #ifndef HAVE_INET_ATON
00560 #define inet_aton(cp, addr) \
00561 (((*(unsigned long int *)(addr)) = inet_addr(cp)) != -1)
00562 #endif
00563
00564 #ifndef SUN_LEN
00565 #ifdef SCM_RIGHTS
00566 #define HAVE_UN_LEN
00567 #endif
00568 #ifdef __linux
00569 #define HAVE_UN_LEN
00570 #endif
00571 #ifdef HAVE_UN_LEN
00572 #define SUN_LEN(ptr) sizeof(sockaddr_un.sun_len) + \
00573 sizeof(sockaddr_un.sun_family) + sizeof(sockaddr_un.sun_path) + 1
00574 #else
00575 #define SUN_LEN(ptr) ((size_t)((struct sockaddr_un *)0)->sun_path) \
00576 + strlen((ptr)->sun_path))
00577 #endif
00578 #endif
00579
00580 #ifndef HAVE_SOCKLEN_T
00581 #if defined(i386) && defined(__svr4__)
00582 #define HAVE_SOCKLEN_U
00583 #endif
00584 #ifdef HAVE_SOCKLEN_U
00585 typedef unsigned socklen_t;
00586 #else
00587 typedef int socklen_t;
00588 #endif
00589 #endif
00590
00591
00592 #ifdef HAVE_POLL_H
00593 #include <poll.h>
00594 #else
00595 #ifdef HAVE_SYS_POLL_H
00596 #include <sys/poll.h>
00597 #endif
00598 #endif
00599
00605
00606 #ifndef HAVE_BOOL_TYPE
00607 typedef enum { true=1, false=0 } bool;
00608 #endif
00609
00610
00611 #ifndef HAVE_EXCEPTION_HANDLING
00612
00613 #define THROW(x) abort()
00614
00615 #define THROWS(x)
00616
00617
00618
00619 #define try if(0) ; else
00620 #define catch(x) if(1) ; else
00621 #else
00622 #define THROW(x) throw x
00623 #define THROWS(x) throw(x)
00624 #endif
00625
00626 #ifdef __NAMESPACES__
00627 #define USING(x) using namespace x;
00628 #else
00629 #define USING(x)
00630 #endif
00631
00632 #ifdef __KCC
00633 #define KAI_NONSTD_IOSTREAM 1
00634 #endif
00635
00636 #ifdef __FreeBSD__
00637 #define ETC_PREFIX "/usr/local/etc/"
00638 #endif
00639
00640 #ifndef ETC_PREFIX
00641 #define ETC_PREFIX "/etc/"
00642 #endif
00643
00644 #endif