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 #ifndef UNIXSTL_INCL_UNIXSTL_H_UNIXSTL
00043 #define UNIXSTL_INCL_UNIXSTL_H_UNIXSTL
00044 #define UNIXSTL_INCL_H_UNIXSTL
00045 
00046 
00047 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00048 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_MAJOR    3
00049 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_MINOR    7
00050 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_REVISION 2
00051 # define UNIXSTL_VER_UNIXSTL_H_UNIXSTL_EDIT     89
00052 #endif 
00053 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00106 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00107 # define _UNIXSTL_VER_0_9_1     0x00000901  
00108 # define _UNIXSTL_VER_0_9_2     0x00000902  
00109 # define _UNIXSTL_VER_1_0_1     0x00010001  
00110 # define _UNIXSTL_VER_1_0_2     0x00010002  
00111 # define _UNIXSTL_VER_1_0_3     0x00010003  
00112 # define _UNIXSTL_VER_1_1_1     0x00010101  
00113 # define _UNIXSTL_VER_1_2_1     0x00010201  
00114 # define _UNIXSTL_VER_1_3_1     0x00010301  
00115 # define _UNIXSTL_VER_1_4_1     0x00010401  
00116 # define _UNIXSTL_VER_1_5_1     0x00010501  
00117 # define _UNIXSTL_VER_1_6_1     0x00010601  
00118 # define _UNIXSTL_VER_1_6_2     0x00010602  
00119 # define _UNIXSTL_VER_1_6_3     0x00010603  
00120 # define _UNIXSTL_VER_1_6_4     0x00010604  
00121 # define _UNIXSTL_VER_1_6_5     0x00010605  
00122 # define _UNIXSTL_VER_1_6_6     0x00010606  
00123 # define _UNIXSTL_VER_1_6_7     0x010607ff  
00124 # define _UNIXSTL_VER_1_6_8     0x010608ff  
00125 # define _UNIXSTL_VER_1_7_1     0x010701ff  
00126 # define _UNIXSTL_VER_1_7_2     0x010702ff  
00127 # define _UNIXSTL_VER_1_7_3     0x010703ff  
00128 #endif 
00129 
00130 #define _UNIXSTL_VER_MAJOR      1
00131 #define _UNIXSTL_VER_MINOR      7
00132 #define _UNIXSTL_VER_REVISION   3
00133 #define _UNIXSTL_VER            _UNIXSTL_VER_1_7_3
00134 
00135 
00136 
00137 
00138 
00139 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00140 # include <stlsoft/stlsoft.h>
00141 #endif 
00142 
00143 
00144 
00145 
00146 
00147 #if !defined(_STLSOFT_VER) || \
00148     _STLSOFT_VER < 0x01095cff
00149 # error This version of the UNIXSTL libraries requires STLSoft version 1.9.92, or later
00150 #endif 
00151 
00152 
00153 
00154 
00155 
00156 
00157 
00158 
00159 
00160 
00161 
00162 #if defined(STLSOFT_COMPILER_IS_COMO)
00163  
00164 # if __COMO_VERSION__ < 4300
00165 #  error Versions of Comeau C++ prior to 4.3.0.1 are not supported by the UNIXSTL libraries
00166 # endif 
00167 
00168 #elif defined(STLSOFT_COMPILER_IS_GCC)
00169  
00170 # if __GNUC__ < 2 || \
00171      (  __GNUC__ == 2 && \
00172         __GNUC_MINOR__ < 95)
00173 #  error Versions of GNU C/C++ prior to 2.95 are not supported by the UNIXSTL libraries
00174 # endif 
00175 
00176 #elif defined(STLSOFT_COMPILER_IS_INTEL)
00177  
00178 # if (__INTEL_COMPILER < 700)
00179 #  error Versions of Intel C++ prior to 7.0 are not supported by the UNIXSTL libraries
00180 # endif 
00181 
00182 #elif defined(STLSOFT_COMPILER_IS_SUNPRO)
00183  
00184 # ifdef __cplusplus
00185 #  if ((__SUNPRO_CC & 0xFFF0) < 0x0590)
00186 #   error Versions of Sun Pro C++ prior to 5.9 are not supported by the UNIXSTL libraries
00187 #  endif 
00188 # else 
00189 #  if ((__SUNPRO_C & 0xFFF0) < 0x0590)
00190 #   error Versions of Sun Pro C prior to 5.9 are not supported by the UNIXSTL libraries
00191 #  endif 
00192 # endif 
00193 
00194 #else
00195 
00196 # ifdef _STLSOFT_FORCE_ANY_COMPILER
00197 #  define _UNIXSTL_COMPILER_IS_UNKNOWN
00198 #  ifdef _STLSOFT_COMPILE_VERBOSE
00199 #   pragma message("Compiler is unknown to UNIXSTL")
00200 #  endif 
00201 # else
00202 #  error Currently only the Comeau, GCC, Intel and Sun Pro C/C++ compilers are supported by the UNIXSTL libraries. To use other, possibly untested, compilers, define _STLSOFT_FORCE_ANY_COMPILER
00203 # endif 
00204 #endif 
00205 
00206 
00207 
00208 
00209 
00210 
00211 
00212 #ifdef UNIXSTL_ARCH_IS_X86
00213 # undef UNIXSTL_ARCH_IS_X86
00214 #endif 
00215 #ifdef UNIXSTL_ARCH_IS_IA64
00216 # undef UNIXSTL_ARCH_IS_IA64
00217 #endif 
00218 #ifdef UNIXSTL_ARCH_IS_X64
00219 # undef UNIXSTL_ARCH_IS_X64
00220 #endif 
00221 
00222 #ifdef UNIXSTL_ARCH_IS_INTEL
00223 # undef UNIXSTL_ARCH_IS_INTEL
00224 #endif 
00225 #ifdef UNIXSTL_ARCH_IS_POWERPC
00226 # undef UNIXSTL_ARCH_IS_POWERPC
00227 #endif 
00228 #ifdef UNIXSTL_ARCH_IS_ALPHA
00229 # undef UNIXSTL_ARCH_IS_ALPHA
00230 #endif 
00231 #ifdef UNIXSTL_ARCH_IS_HPPA
00232 # undef UNIXSTL_ARCH_IS_HPPA
00233 #endif 
00234 #ifdef UNIXSTL_ARCH_IS_SPARC
00235 # undef UNIXSTL_ARCH_IS_SPARC
00236 #endif 
00237 #ifdef UNIXSTL_ARCH_IS_UNKNOWN
00238 # undef UNIXSTL_ARCH_IS_UNKNOWN
00239 #endif 
00240 
00241 #if defined(__amd64__) || \
00242       defined(__amd64) || \
00243       defined(_AMD64_) || \
00244       defined(_M_AMD64) || \
00245       defined(_M_X64)
00246 # define UNIXSTL_ARCH_IS_INTEL
00247 # define UNIXSTL_ARCH_IS_X64
00248 #elif defined(__ia64__) || \
00249       defined(__ia64) || \
00250       defined(_IA64_) || \
00251       defined(_M_IA64)
00252 # define UNIXSTL_ARCH_IS_INTEL
00253 # define UNIXSTL_ARCH_IS_IA64
00254 #elif defined(__i386__) || \
00255       defined(__i386) || \
00256       defined(_X86_) || \
00257       defined(_M_IX86)
00258 # define UNIXSTL_ARCH_IS_INTEL
00259 # define UNIXSTL_ARCH_IS_X86
00260 #elif defined(__alpha__) || \
00261       defined(__alpha) || \
00262       defined(_M_ALPHA)
00263 # define UNIXSTL_ARCH_IS_ALPHA
00264 #elif defined(__hppa__) || \
00265       defined(__hppa)
00266 # define UNIXSTL_ARCH_IS_HPPA
00267 #elif defined(__ppc__) || \
00268       defined(__ppc) || \
00269       defined(__POWERPC__) || \
00270       defined(_POWER) || \
00271       defined(_M_PPC)
00272 # define UNIXSTL_ARCH_IS_POWERPC
00273 #elif defined(__sparc__) || \
00274       defined(__sparc)
00275 
00276 # define UNIXSTL_ARCH_IS_SPARC
00277 #else 
00278 # define UNIXSTL_ARCH_IS_UNKNOWN
00279 #endif 
00280 
00281 
00282 
00283 
00284 
00285 
00286 
00287 
00288 
00289 #ifdef UNIXSTL_OSFAMILY_IS_BSD
00290 # undef UNIXSTL_OSFAMILY_IS_BSD
00291 #endif 
00292 #ifdef UNIXSTL_OSFAMILY_IS_SVR4
00293 # undef UNIXSTL_OSFAMILY_IS_SVR4
00294 #endif 
00295 
00296 
00297 #if defined(__FreeBSD__) || \
00298     defined(__NetBSD__) || \
00299     defined(__OpenBSD__) || \
00300     defined(__bsdi__) || \
00301     defined(_SYSTYPE_BSD)
00302 # define UNIXSTL_OSFAMILY_IS_BSD
00303 #endif 
00304 
00305 #if defined(__sysv__) || \
00306     defined(__SVR4) || \
00307     defined(__svr4__) || \
00308     defined(_SYSTYPE_SVR4)
00309 # define UNIXSTL_OSFAMILY_IS_SVR4
00310 #endif 
00311 
00312 
00313 
00314 
00315 
00316 
00317 
00318 
00319 
00320 #ifdef UNIXSTL_OS_IS_APPLE
00321 # undef UNIXSTL_OS_IS_APPLE
00322 #endif 
00323 #ifdef UNIXSTL_OS_IS_AIX
00324 # undef UNIXSTL_OS_IS_AIX
00325 #endif 
00326 #ifdef UNIXSTL_OS_IS_FREEBSD
00327 # undef UNIXSTL_OS_IS_FREEBSD
00328 #endif 
00329 #ifdef UNIXSTL_OS_IS_HPUX
00330 # undef UNIXSTL_OS_IS_HPUX
00331 #endif 
00332 #ifdef UNIXSTL_OS_IS_LINUX
00333 # undef UNIXSTL_OS_IS_LINUX
00334 #endif 
00335 #ifdef UNIXSTL_OS_IS_MACOSX
00336 # undef UNIXSTL_OS_IS_MACOSX
00337 #endif 
00338 #ifdef UNIXSTL_OS_IS_NETBSD
00339 # undef UNIXSTL_OS_IS_NETBSD
00340 #endif 
00341 #ifdef UNIXSTL_OS_IS_OPENBSD
00342 # undef UNIXSTL_OS_IS_OPENBSD
00343 #endif 
00344 #ifdef UNIXSTL_OS_IS_SOLARIS
00345 # undef UNIXSTL_OS_IS_SOLARIS
00346 #endif 
00347 #ifdef UNIXSTL_OS_IS_FREEBSD
00348 # undef UNIXSTL_OS_IS_FREEBSD
00349 #endif 
00350 #ifdef UNIXSTL_OS_IS_UNKNOWN
00351 # undef UNIXSTL_OS_IS_UNKNOWN
00352 #endif 
00353 
00354 #if defined(__APPLE__) || \
00355     defined(__MACOSX__)
00356 # define UNIXSTL_OS_IS_APPLE
00357 # define UNIXSTL_OS_IS_MACOSX
00358 #elif defined(_AIX)
00359 # define UNIXSTL_OS_IS_AIX
00360 #elif defined(__FreeBSD__)
00361 # define UNIXSTL_OS_IS_FREEBSD
00362 #elif defined(hpux) || \
00363       defined(_hpux)
00364 # define UNIXSTL_OS_IS_HPUX
00365 #elif defined(__linux__) || \
00366       defined(__linux) || \
00367       defined(linux)
00368 # define UNIXSTL_OS_IS_LINUX
00369 #elif defined(__NetBSD__)
00370 # define UNIXSTL_OS_IS_NETBSD
00371 #elif defined(__OpenBSD__)
00372 # define UNIXSTL_OS_IS_OPENBSD
00373 #elif defined(sun) || \
00374       defined(__sun)
00375 # if defined(UNIXSTL_OSFAMILY_IS_SVR4)
00376 #  define UNIXSTL_OS_IS_SOLARIS
00377 # else 
00378 #  define UNIXSTL_OS_IS_SUNOS
00379 # endif 
00380 #else 
00381 # define UNIXSTL_OS_IS_UNKNOWN
00382 #endif 
00383 
00384 
00385 
00386 
00387 
00388 
00389 
00396 #if defined(UNIXSTL_OS_IS_MACOSX) && \
00397     defined(__assert)
00398 # define UNIXSTL_ASSERT(expr)               ((void)((expr) ? 0 : (__assert(#expr, __FILE__, __LINE__), 0)))
00399 #else 
00400 # define UNIXSTL_ASSERT(expr)               STLSOFT_ASSERT(expr)
00401 #endif 
00402 
00410 #define UNIXSTL_MESSAGE_ASSERT(msg, expr)   STLSOFT_MESSAGE_ASSERT(msg, expr)
00411 
00418 #define UNIXSTL_STATIC_ASSERT(expr)         STLSOFT_STATIC_ASSERT(expr)
00419 
00420 
00421 
00422 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00423 # define unixstl_assert(expr)               UNIXSTL_ASSERT(expr)
00424 # define unixstl_message_assert(msg, expr)  UNIXSTL_MESSAGE_ASSERT(msg, expr)
00425 # define unixstl_static_assert(expr)        UNIXSTL_STATIC_ASSERT(expr)
00426 #endif 
00427 
00428 
00429 
00430 
00431 
00432 
00433 
00434 
00435 
00436 
00437 
00438 
00439 
00440 
00441 
00442 
00443 
00444 
00445 
00446 
00447 
00448 
00449 
00450 
00451 
00452 
00453 
00454 
00455 
00456 
00457 
00458 
00459 
00460 
00461 
00462 
00463 
00464 
00465 
00466 
00467 
00468 
00469 #ifdef _STLSOFT_NO_NAMESPACES
00470 # define _UNIXSTL_NO_NAMESPACES
00471 #endif 
00472 
00473 
00474 #ifdef _UNIXSTL_NO_NAMESPACES
00475 # define _UNIXSTL_NO_NAMESPACE
00476 #endif 
00477 
00478 #ifndef _UNIXSTL_NO_NAMESPACE
00479 # if defined(_STLSOFT_NO_NAMESPACE) || \
00480      defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00481 
00512 namespace unixstl
00513 {
00514 # else
00515 
00516 
00517 namespace stlsoft
00518 {
00519 
00520 namespace unixstl_project
00521 {
00522 
00523 # endif 
00524 #else
00525 stlsoft_ns_using(move_lhs_from_rhs)
00526 #endif 
00527 
00536 #ifndef _UNIXSTL_NO_NAMESPACE
00537 # define unixstl_ns_qual(x)             ::unixstl::x
00538 # define unixstl_ns_using(x)            using ::unixstl::x;
00539 #else
00540 # define unixstl_ns_qual(x)             x
00541 # define unixstl_ns_using(x)
00542 #endif 
00543 
00552 #ifdef STLSOFT_CF_std_NAMESPACE
00553 # define unixstl_ns_qual_std(x)         ::std::x
00554 # define unixstl_ns_using_std(x)        using ::std::x;
00555 #else 
00556 # define unixstl_ns_qual_std(x)         x
00557 # define unixstl_ns_using_std(x)
00558 #endif 
00559 
00560 
00561 
00562 
00563 
00564 
00565 
00566 
00567 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00568 
00569 typedef stlsoft_ns_qual(ss_char_a_t)        us_char_a_t;    
00570 typedef stlsoft_ns_qual(ss_char_w_t)        us_char_w_t;    
00571 typedef stlsoft_ns_qual(ss_sint8_t)         us_sint8_t;     
00572 typedef stlsoft_ns_qual(ss_uint8_t)         us_uint8_t;     
00573 typedef stlsoft_ns_qual(ss_int16_t)         us_int16_t;     
00574 typedef stlsoft_ns_qual(ss_sint16_t)        us_sint16_t;    
00575 typedef stlsoft_ns_qual(ss_uint16_t)        us_uint16_t;    
00576 typedef stlsoft_ns_qual(ss_int32_t)         us_int32_t;     
00577 typedef stlsoft_ns_qual(ss_sint32_t)        us_sint32_t;    
00578 typedef stlsoft_ns_qual(ss_uint32_t)        us_uint32_t;    
00579 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00580 typedef stlsoft_ns_qual(ss_int64_t)         us_int64_t;     
00581 typedef stlsoft_ns_qual(ss_sint64_t)        us_sint64_t;    
00582 typedef stlsoft_ns_qual(ss_uint64_t)        us_uint64_t;    
00583 #endif 
00584 typedef stlsoft_ns_qual(ss_int_t)           us_int_t;       
00585 typedef stlsoft_ns_qual(ss_sint_t)          us_sint_t;      
00586 typedef stlsoft_ns_qual(ss_uint_t)          us_uint_t;      
00587 typedef stlsoft_ns_qual(ss_long_t)          us_long_t;      
00588 #if defined(__cplusplus)
00589 typedef stlsoft_ns_qual(ss_bool_t)          us_bool_t;      
00590 #endif 
00591 typedef stlsoft_ns_qual(ss_size_t)          us_size_t;      
00592 typedef stlsoft_ns_qual(ss_ptrdiff_t)       us_ptrdiff_t;   
00593 typedef stlsoft_ns_qual(ss_streampos_t)     us_streampos_t; 
00594 typedef stlsoft_ns_qual(ss_streamoff_t)     us_streamoff_t; 
00596 #endif 
00597 
00598 #ifndef _UNIXSTL_NO_NAMESPACE
00599 typedef us_char_a_t         char_a_t;           
00600 typedef us_char_w_t         char_w_t;           
00601              
00602 typedef us_sint8_t          sint8_t;            
00603 typedef us_uint8_t          uint8_t;            
00604 typedef us_int16_t          int16_t;            
00605 typedef us_sint16_t         sint16_t;           
00606 typedef us_uint16_t         uint16_t;           
00607 typedef us_int32_t          int32_t;            
00608 typedef us_sint32_t         sint32_t;           
00609 typedef us_uint32_t         uint32_t;           
00610 # ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00611  typedef us_int64_t         int64_t;            
00612  typedef us_sint64_t        sint64_t;           
00613  typedef us_uint64_t        uint64_t;           
00614 # endif 
00615             
00616 typedef us_int_t            int_t;              
00617 typedef us_sint_t           sint_t;             
00618 typedef us_uint_t           uint_t;             
00619 typedef us_long_t           long_t;             
00620              
00621 typedef us_bool_t           bool_t;             
00622 # if !defined(STLSOFT_COMPILER_IS_DMC)
00623 typedef us_streampos_t      streampos_t;        
00624 typedef us_streamoff_t      streamoff_t;        
00625 # endif 
00626 #endif 
00627 
00628 
00629 
00630 
00631 
00632 
00633 
00634 
00635 
00636 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00637 
00638 #define us_true_v       ss_true_v
00639 #define us_false_v      ss_false_v
00640 
00641 #endif 
00642 
00643 
00644 
00645 
00646 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00647 
00648 #define unixstl_throw_0()                               stlsoft_throw_0()
00649 #define unixstl_throw_1(x1)                             stlsoft_throw_1(x1)
00650 #define unixstl_throw_2(x1, x2)                         stlsoft_throw_2(x1, x2)
00651 #define unixstl_throw_3(x1, x2, x3)                     stlsoft_throw_3(x1, x2, x3)
00652 #define unixstl_throw_4(x1, x2, x3, x4)                 stlsoft_throw_4(x1, x2, x3, x4)
00653 #define unixstl_throw_5(x1, x2, x3, x4, x5)             stlsoft_throw_5(x1, x2, x3, x4, x5)
00654 #define unixstl_throw_6(x1, x2, x3, x4, x5, x6)         stlsoft_throw_6(x1, x2, x3, x4, x5, x6)
00655 #define unixstl_throw_7(x1, x2, x3, x4, x5, x6, x7)     stlsoft_throw_7(x1, x2, x3, x4, x5, x6, x7)
00656 #define unixstl_throw_8(x1, x2, x3, x4, x5, x6, x7, x8) stlsoft_throw_8(x1, x2, x3, x4, x5, x6, x7, x8)
00657 #endif 
00658 
00659 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00660 # define UNIXSTL_NUM_ELEMENTS(ar)                       STLSOFT_NUM_ELEMENTS(ar)
00661 # define unixstl_num_elements(ar)                       UNIXSTL_NUM_ELEMENTS(ar)
00662 #endif 
00663 
00668 #define unixstl_destroy_instance(t, _type, p)           STLSOFT_DESTROY_INSTANCE(t, _type, p)
00669 
00674 #define unixstl_gen_opaque(_htype)                      STLSOFT_GEN_OPAQUE(_htype)
00675 
00676 
00677 
00678 #ifndef _UNIXSTL_NO_NAMESPACE
00679 # if defined(_STLSOFT_NO_NAMESPACE) || \
00680      defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00681 } 
00682 # else
00683 } 
00684 } 
00685 namespace unixstl = ::stlsoft::unixstl_project;
00686 # endif 
00687 #endif 
00688 
00689 
00690 
00691 
00692 
00693 #ifdef STLSOFT_CF_PRAGMA_ONCE_SUPPORT
00694 # pragma once
00695 #endif 
00696 
00697 
00698 
00699 #endif 
00700 
00701