p6types.h

Go to the documentation of this file.
00001 
00010 #ifndef P6TYPES_H__
00011 #define P6TYPES_H__ 1
00012 
00013 #include <stddef.h>
00014 #include <wchar.h>      // wchar_t
00015 #include "p6platform.h"
00016 
00017 namespace P6R {
00018 
00019 #ifdef  __cplusplus
00020 extern "C" {
00021 #endif
00022 
00027 
00028 typedef unsigned char      P6UINT8;
00029 typedef char               P6INT8;
00030 typedef P6UINT8            P6BYTE;
00031 #if P6SIZEOF_SHORT == 2
00032 typedef unsigned short int P6UINT16;
00033 typedef short int          P6INT16;
00034 #else
00035 #error Unable to find an appropriate type for P6UINT16 and P6INT16
00036 #endif
00037 #if P6SIZEOF_INT == 4
00038 typedef unsigned int       P6UINT32;
00039 typedef int                P6INT32;
00040 #elif P6SIZEOF_LONG == 4
00041 typedef unsigned long      P6UINT32;
00042 typedef long               P6INT32;
00043 #else
00044 #error Unable to find an appropriate type for P6UINT32 and P6INT32
00045 #endif
00046 #if P6SIZEOF_LONGLONG == 8
00047 typedef P6ULONGLONG        P6UINT64;
00048 typedef P6LONGLONG         P6INT64;
00049 #else
00050 #error Unable to find an appropriate type for P6UINT64 and P6INT64
00051 #endif
00052 
00053 
00054 typedef short              P6SHORT;
00055 typedef unsigned short     P6USHORT;
00056 typedef int                P6INT;
00057 typedef unsigned int       P6UINT;
00058 typedef long               P6LONG;
00059 typedef unsigned long      P6ULONG;
00060 typedef size_t             P6SIZE;
00061 typedef double             P6FLOAT;
00062 
00068 typedef char               P6CHAR;
00069 typedef P6CHAR*            P6STR;
00070 typedef const P6CHAR*      P6CSTR;
00071 typedef unsigned char      P6UCHAR;
00072 typedef void               P6VOID;
00073 typedef wchar_t            P6WCHAR;                
00074 typedef P6WCHAR*           P6WSTR;
00075 typedef const P6WCHAR*     P6CWSTR;
00076 typedef P6WCHAR*           P6COMSTR;               
00077 #define P6TEXT(t)          L ## t   
00078 #define P6CTEXT(t)         (const P6R::P6WCHAR*) L ## t  
00079 #define P6CHR(c)           L ## c   
00080 #define P6CCHR(c)          (const P6R::P6WCHAR) L ## c   
00081 #define P6CHARCNT(x)       (sizeof((x))/sizeof((x)[0]))
00082 
00083 #if defined(__GNUC__) || defined(__SUNPRO_CC)
00084 #define P6I64(v)  v##LL
00085 #define P6U64(v)  v##ULL
00086 #else
00087 #define P6I64(v)  v##i64
00088 #define P6U64(v)  v##ui64
00089 #endif
00090 
00091    
00097 typedef bool               P6BOOL;     
00098 #define P6TRUE             1
00099 #define P6FALSE            0
00100    
00105 typedef P6UINT32           P6ERR;
00106 typedef P6SIZE             P6ATOM;     
00107 typedef P6SIZE             P6THREADID; 
00127 typedef struct {
00128    P6R::P6UINT32  timeLow;       
00129    P6R::P6UINT16  timeMid;       
00130    P6R::P6UINT16  timeHighVer;   
00131    P6R::P6UINT8   clockNode[8];  
00134 } P6UUID;
00135 #define P6UUID_STR_SIZE   39
00136 
00137 typedef P6UUID IID;              
00138 typedef P6UUID CID;              
00139 typedef P6UUID CATID;            
00150 typedef struct {
00151    P6R::P6UCHAR            *pString;   
00152    P6R::P6SIZE             length;     
00153 } P6BSTR;
00154 
00164 typedef struct {
00165    const P6R::P6UCHAR      *pString;   
00166    P6R::P6SIZE             length;     
00167 } P6BCSTR;
00168 
00180 typedef struct {
00181    P6R::P6WCHAR            *pString;   
00182    P6R::P6SIZE             length;     
00183 } P6BWSTR;
00184 
00196 typedef struct {
00197    const P6R::P6WCHAR      *pString;   
00198    P6R::P6SIZE             length;     
00199 } P6BWCSTR;
00200 
00208 typedef P6INT64            P6TIME;
00209 
00213 typedef struct {
00214    P6INT32                 useconds;   
00215    P6INT32                 seconds;    
00216    P6INT32                 minutes;    
00217    P6INT32                 hour;       
00218    P6INT16                 month;      
00219    P6INT16                 dayOfMonth; 
00220    P6INT32                 year;       
00222    P6INT16                 dayOfWeek;  
00223    P6INT16                 dayOfYear;  
00224    P6INT32                 tzoff;      
00225    P6INT32                 dstoff;     
00226 } P6TIMEINFO;
00227 
00229 
00234 typedef P6UINT64           P6INTERVAL;
00235 
00236 typedef struct {
00237    P6R::P6UINT32     hours;
00238    P6R::P6UINT32     minutes;
00239    P6R::P6UINT32     seconds;
00240    P6R::P6UINT32     milliseconds;
00241    P6R::P6UINT64     microseconds;
00242    P6R::P6UINT64     fractional;
00243 } P6EXPANDEDINTERVAL;
00244 
00245 
00246 typedef P6R::P6VOID        *P6DLLHANDLE;
00247 typedef P6R::P6VOID        *P6SYMPROC;
00248 
00257 typedef P6R::P6UINT8                P6P8BIT;       
00258 typedef struct {P6R::P6UINT8 c[2];} P6P16BIT;      
00259 typedef struct {P6R::P6UINT8 c[4];} P6P32BIT;      
00260 typedef struct {P6R::P6UINT8 c[8];} P6P64BIT;      
00263 #define P6_NSEC_PER_USEC   1000UL
00264 
00266 #define P6_NSEC_PER_MSEC   1000000UL
00267 
00269 #define P6_NSEC_PER_SEC    1000000000UL
00270 
00272 #define P6_USEC_PER_MSEC   1000UL
00273 
00275 #define P6_USEC_PER_SEC    1000000UL
00276 
00278 #define P6_MSEC_PER_SEC    1000UL
00279 
00280 #define P6_SEC_PER_HOUR    3600UL
00281 
00282 #define P6_SEC_PER_DAY     86400UL
00283 
00284 typedef enum {
00285    P6AF_INET = 1,                
00286    P6AF_INET6= 2,                
00287    P6AF_MAX
00288 } P6ADDRFAM;
00289 
00294 typedef struct {
00295    union {
00296       P6UINT8                    u8[4];
00297       P6UINT16                   u16[2];
00298       P6UINT32                   u32;
00299    } u;
00300 } IPV4ADDR;
00301 
00306 typedef struct {
00307    union {
00308       P6UINT8                    u8[16];
00309       P6UINT16                   u16[8];
00310       P6UINT32                   u32[4];
00311    } u;
00312 } IPV6ADDR;
00313 
00318 typedef union {
00319    struct {
00320       P6ADDRFAM                  family;     
00321       P6UINT16                   port;       
00322       IPV4ADDR                   ip;         
00323    } inet;                       
00324    struct {                      
00325       P6ADDRFAM                  family;     
00326       P6UINT16                   port;       
00327       P6UINT32                   flowinfo;   
00328       IPV6ADDR                   ip;         
00329       P6UINT32                   scope_id;   
00330    } inet6;
00331 } P6NETADDR;
00332 
00333 
00337 typedef struct {
00338    P6R::P6INT32               major;            
00339    P6R::P6INT32               minor;            
00340    P6R::P6INT32               patch;            
00341    P6R::P6INT32               build;            
00342 } P6VERSION;
00343 
00344 typedef P6R::P6UINT32   BUILDFLAGS;
00345 const BUILDFLAGS  P6BF_NONE            = 0x00000000;
00346 const BUILDFLAGS  P6BF_DEBUG           = 0x00000001;
00347 const BUILDFLAGS  P6BF_RETAIL          = 0x00000002;
00348 const BUILDFLAGS  P6BF_ALPHA           = 0x00000004;
00349 const BUILDFLAGS  P6BF_BETA            = 0x00000008;
00350 const BUILDFLAGS  P6BF_RELEASE         = 0x00000010;
00351 const BUILDFLAGS  P6BF_INTERNAL        = 0x00000020;
00352 
00353 const BUILDFLAGS  P6BF_BUILDMODE_MASK  = 0x00000003;
00354 const BUILDFLAGS  P6BF_RELEASETYPE_MASK= 0x0000003c;
00355 
00356 typedef P6R::P6UINT32 VERMAGIC;
00357 const VERMAGIC    P6VI_MAGIC1          = 0x18436572;
00358 const VERMAGIC    P6VI_MAGIC2          = 0x011951dc;
00359 
00360 typedef struct {
00361    VERMAGIC             magic1;
00362    VERMAGIC             magic2;
00363    P6R::P6VERSION       productver;       
00364    P6R::P6VERSION       filever;          
00365    BUILDFLAGS           flags;            
00366    const P6R::P6CHAR    *pcszLocale;      
00367    const P6R::P6WCHAR   *pszwProductName; 
00368    const P6R::P6WCHAR   *pszwCopyright;   
00369    const P6R::P6WCHAR   *pszwModuleDesc;  
00370    const P6R::P6WCHAR   *pszwBuildNotes;  
00371 } P6VERINFO;
00372 
00373 typedef enum {
00374    VER_PRODUCT,
00375    VER_FILE
00376 } VERFIELDS;
00377 
00378 typedef enum {
00379    VER_PRODNAME,
00380    VER_COPYRIGHT,
00381    VER_MODDESC,
00382    VER_NOTES
00383 } VERSTRFIELDS;
00385 
00389 #define P6MAX_LOCALE_LEN 64
00390 
00391 
00396 #define P6SAFESTR_MAX_CCH  2147483647
00397 
00401 typedef enum {
00402    P6AT_BOOL,     
00403    P6AT_CHAR,     
00404    P6AT_CHARPTR,  
00405    P6AT_UCHAR,    
00406    P6AT_UCHARPTR, 
00407    P6AT_WCHAR,    
00408    P6AT_WCHARPTR, 
00409    P6AT_PTR,      
00410    P6AT_INT8,     
00411    P6AT_UINT8,    
00412    P6AT_INT16,    
00413    P6AT_UINT16,   
00414    P6AT_INT32,    
00415    P6AT_UINT32,   
00416    P6AT_INT64,    
00417    P6AT_UINT64,   
00418    P6AT_SIZE,     
00419    P6AT_FLOAT,    
00420    P6AT_TIME,     
00421    P6AT_ERR,      
00422    P6AT_UUID,     
00423    P6AT_NETADDR,  
00424    P6AT_INTERVAL, 
00425    P6AT_BSTR,     
00426    P6AT_BWSTR     
00427 } P6ARGTYPE;
00428 
00429 typedef enum {
00430    P6AF_HEXU,     
00431    P6AF_HEXL,     
00432    P6AF_DEC,      
00433    P6AF_OCT,      
00434    P6AF_CHAR,     
00435    P6AF_STR,      
00436    P6AF_ISOT,     
00437    P6AF_RFCT      
00438 } P6ARGFMT;
00439 
00440 typedef enum {
00441    P6AFL_NOFLAGS     = 0x00000000,    
00442    P6AFL_LEFTALIGN   = 0x00000001,        
00443    P6AFL_CENTER      = 0x00000002,        
00444    P6AFL_SIGN        = 0x00000004,        
00445    P6AFL_ADDPORT     = 0x00000008,        
00446    P6AFL_ISO860      = 0x00000010,        
00447    P6AFL_RFC822      = 0x00000020,        
00448    P6AFL_LOCALTIME   = 0x00000040,        
00449    P6AFL_TRUNCATE    = 0x00000080         
00450 } P6ARGFLAGS;
00451 
00455 typedef struct {
00456    P6ARGTYPE               m_nType;       
00457    P6UINT16                m_fieldWidth;  
00458    P6INT16                 m_precision;   
00459    P6WCHAR                 m_precisionPad;
00460    P6WCHAR                 m_fieldPad;    
00461    P6ARGFMT                m_nFormat;     
00462    P6ARGFLAGS              m_fFlags;      
00463    union {
00464       P6R::P6CHAR          m_char;
00465       P6R::P6BOOL          m_bool;
00466       const P6R::P6CHAR    *m_charptr;
00467       P6R::P6UCHAR         m_uchar;
00468       const P6R::P6UCHAR   *m_ucharptr;
00469       P6R::P6WCHAR         m_wchar;
00470       const P6R::P6WCHAR   *m_wcharptr;
00471       const P6R::P6VOID    *m_voidptr;
00472       P6R::P6INT8          m_int8;
00473       P6R::P6UINT8         m_uint8;
00474       P6R::P6INT16         m_int16;
00475       P6R::P6UINT16        m_uint16;
00476       P6R::P6INT32         m_int32;
00477       P6R::P6UINT32        m_uint32;
00478       P6R::P6INT64         m_int64;
00479       P6R::P6UINT64        m_uint64;
00480       P6R::P6SIZE          m_sizet;
00481       P6R::P6FLOAT         m_float;
00482       P6R::P6TIME          m_time;
00483       P6R::P6ERR           m_err;
00484       P6R::P6INTERVAL      m_tInterval;
00485       const P6R::P6UUID    *m_uuid;
00486       const P6R::P6NETADDR *m_netAddr;
00487       const P6R::P6BSTR    *m_bstr;
00488       const P6R::P6BWSTR   *m_bwstr;
00489    };
00490 } P6ARG;
00491 
00492 
00493    #define P6ARGINPLACE_INIT(type,fieldWidth,precision,precisionPad,fieldPad,format,flags,data) \
00494    {(type),(fieldWidth),(precision),(precisionPad),(fieldPad),(format),(flags),{(data)}}
00495 
00496 #define P6ARGINIT(arg,nType,fmt,fieldWidth,precision,flags,fieldPad,precisionPad)  \
00497 (arg)->m_nType          = (nType);                 \
00498 (arg)->m_fieldWidth     = (fieldWidth);            \
00499 (arg)->m_precision      = (precision);             \
00500 (arg)->m_precisionPad   = (precisionPad);          \
00501 (arg)->m_fieldPad       = (fieldPad);              \
00502 (arg)->m_fFlags         = (flags);                 \
00503 (arg)->m_nFormat        = (fmt);                   \
00504 (arg)->m_uint64         = P6I64(0)
00505 
00506 #define P6ARGINITBOOLEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)             P6ARGINIT((arg),P6R::P6AT_BOOL,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));         (arg)->m_bool = (data)
00507 #define P6ARGINITCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)             P6ARGINIT((arg),P6R::P6AT_CHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));        (arg)->m_char = (data)
00508 #define P6ARGINITCHARPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)          P6ARGINIT((arg),P6R::P6AT_CHARPTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));     (arg)->m_charptr = (data)
00509 #define P6ARGINITUCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_UCHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_uchar = (data)
00510 #define P6ARGINITWCHAREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_WCHAR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_wchar = (data)
00511 #define P6ARGINITWCHARPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)         P6ARGINIT((arg),P6R::P6AT_WCHARPTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));    (arg)->m_wcharptr = (data)
00512 #define P6ARGINITPTREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)              P6ARGINIT((arg),P6R::P6AT_PTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));         (arg)->m_voidptr = (data)
00513 #define P6ARGINITINT8EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)             P6ARGINIT((arg),P6R::P6AT_INT8,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));        (arg)->m_int8 = (data)
00514 #define P6ARGINITUINT8EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_UINT8,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_uint8 = (data)
00515 #define P6ARGINITINT16EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_INT16,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_int16 = (data)
00516 #define P6ARGINITUINT16EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)           P6ARGINIT((arg),P6R::P6AT_UINT16,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));      (arg)->m_uint16 = (data)
00517 #define P6ARGINITINT32EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_INT32,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_int32 = (data)
00518 #define P6ARGINITUINT32EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)           P6ARGINIT((arg),P6R::P6AT_UINT32,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));      (arg)->m_uint32 = (data)
00519 #define P6ARGINITINT64EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_INT64,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_int64 = (data)
00520 #define P6ARGINITUINT64EX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)           P6ARGINIT((arg),P6R::P6AT_UINT64,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));      (arg)->m_uint64 = (data)
00521 #define P6ARGINITSIZEEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)             P6ARGINIT((arg),P6R::P6AT_SIZE,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));        (arg)->m_sizet = (data)
00522 #define P6ARGINITERREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)              P6ARGINIT((arg),P6R::P6AT_ERR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));         (arg)->m_err = (data)
00523 #define P6ARGINITUUIDEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)             P6ARGINIT((arg),P6R::P6AT_UUID,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));        (arg)->m_uuid = (data)
00524 #define P6ARGINITNETADDREX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)          P6ARGINIT((arg),P6R::P6AT_NETADDR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));     (arg)->m_netAddr = (data)
00525 #define P6ARGINITINTERVALEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)         P6ARGINIT((arg),P6R::P6AT_INTERVAL,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));    (arg)->m_tInterval = (data)
00526 #define P6ARGINITFLOATEX(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)            P6ARGINIT((arg),P6R::P6AT_FLOAT,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));       (arg)->m_float = (data)
00527 #define P6ARGINITBSTR(arg,data,fmt,precision,fieldWidth,flags,ppad,fpad)               P6ARGINIT((arg),P6R::P6AT_BSTR,(fmt),(fieldWidth),(precision),(flags),(fpad),(ppad));        (arg)->m_bstr = (data)
00528 
00529 #define P6AI_BOOL(arg,data)         P6ARGINITBOOLEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00530 #define P6AI_BOOL_HEXL(arg,data)    P6ARGINITBOOLEX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00531 #define P6AI_BOOL_HEXU(arg,data)    P6ARGINITBOOLEX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00532 #define P6AI_BOOL_DEC(arg,data)     P6ARGINITBOOLEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00533 
00534 #define P6AI_CHAR(arg,data)         P6ARGINITCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00535 #define P6AI_CHAR_HEXL(arg,data)    P6ARGINITCHAREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00536 #define P6AI_CHAR_HEXU(arg,data)    P6ARGINITCHAREX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00537 #define P6AI_CHAR_DEC(arg,data)     P6ARGINITCHAREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00538 
00539 #define P6AI_CHARPTR(arg,data)      P6ARGINITCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00540 #define P6AI_CHARPTR_HEXL(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00541 #define P6AI_CHARPTR_HEXU(arg,data) P6ARGINITCHARPTREX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00542 #define P6AI_CHARPTR_DEC(arg,data)  P6ARGINITCHARPTREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00543 
00544 #define P6AI_UCHAR(arg,data)        P6ARGINITUCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00545 #define P6AI_UCHAR_HEXL(arg,data)   P6ARGINITUCHAREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00546 #define P6AI_UCHAR_HEXU(arg,data)   P6ARGINITUCHAREX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00547 #define P6AI_UCHAR_DEC(arg,data)    P6ARGINITUCHAREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00548 
00549 #define P6AI_WCHAR(arg,data)        P6ARGINITWCHAREX(arg,data,P6R::P6AF_CHAR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00550 #define P6AI_WCHAR_HEXL(arg,data)   P6ARGINITWCHAREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00551 #define P6AI_WCHAR_HEXU(arg,data)   P6ARGINITWCHAREX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00552 #define P6AI_WCHAR_DEC(arg,data)    P6ARGINITWCHAREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00553 
00554 #define P6AI_WCHARPTR(arg,data)     P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00555 #define P6AI_WCHARPTR_HEXL(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00556 #define P6AI_WCHARPTR_HEXU(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00557 #define P6AI_WCHARPTR_DEC(arg,data) P6ARGINITWCHARPTREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00558 
00559 #define P6AI_PTR(arg,data)          P6ARGINITPTREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00560 #define P6AI_PTR_DEC(arg,data)      P6ARGINITPTREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00561 
00562 #define P6AI_INT8(arg,data)         P6ARGINITINT8EX(atg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00563 #define P6AI_INT8_HEXL(arg,data)    P6ARGINITINT8EX(atg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00564 #define P6AI_INT8_HEXU(arg,data)    P6ARGINITINT8EX(atg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00565 
00566 #define P6AI_UINT8(arg,data)        P6ARGINITUINT8EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00567 #define P6AI_UINT8_HEXL(arg,data)   P6ARGINITUINT8EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00568 #define P6AI_UINT8_HEXU(arg,data)   P6ARGINITUINT8EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00569 
00570 #define P6AI_INT16(arg,data)        P6ARGINITINT16EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00571 #define P6AI_INT16_HEXL(arg,data)   P6ARGINITINT16EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00572 #define P6AI_INT16_HEXU(arg,data)   P6ARGINITINT16EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00573 
00574 #define P6AI_UINT16(arg,data)       P6ARGINITUINT16EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00575 #define P6AI_UINT16_HEXL(arg,data)  P6ARGINITUINT16EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00576 #define P6AI_UINT16_HEXU(arg,data)  P6ARGINITUINT16EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00577 
00578 #define P6AI_INT32(arg,data)        P6ARGINITINT32EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00579 #define P6AI_INT32_HEXL(arg,data)   P6ARGINITINT32EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00580 #define P6AI_INT32_HEXU(arg,data)   P6ARGINITINT32EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00581 
00582 #define P6AI_UINT32(arg,data)       P6ARGINITUINT32EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00583 #define P6AI_UINT32_HEXL(arg,data)  P6ARGINITUINT32EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00584 #define P6AI_UINT32_HEXU(arg,data)  P6ARGINITUINT32EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00585 
00586 #define P6AI_INT64(arg,data)        P6ARGINITINT64EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00587 #define P6AI_INT64_HEXL(arg,data)   P6ARGINITINT64EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00588 #define P6AI_INT64_HEXU(arg,data)   P6ARGINITINT64EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00589 
00590 #define P6AI_UINT64(arg,data)       P6ARGINITUINT64EX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00591 #define P6AI_UINT64_HEXL(arg,data)  P6ARGINITUINT64EX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00592 #define P6AI_UINT64_HEXU(arg,data)  P6ARGINITUINT64EX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00593 
00594 #define P6AI_SIZE(arg,data)         P6ARGINITSIZEEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00595 #define P6AI_SIZE_HEXL(arg,data)    P6ARGINITSIZEEX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00596 #define P6AI_SIZE_HEXU(arg,data)    P6ARGINITSIZEEX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00597 
00598 #define P6AI_FLOAT(arg,data)        P6ARGINITFLOATEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00599 
00600 #define P6AI_UUID(arg,data)         P6ARGINITUUIDEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00601 
00602 #define P6AI_ERR(arg,data)          P6ARGINITERREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00603 #define P6AI_ERR_HEXL(arg,data)     P6ARGINITERREX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00604 #define P6AI_ERR_HEXU(arg,data)     P6ARGINITERREX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00605 #define P6AI_ERR_DEC(arg,data)      P6ARGINITERREX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00606 
00607 #define P6AI_NETADDR(arg,data)      P6ARGINITNETADDREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00608 #define P6AI_NETADDRPORT(arg,data)  P6ARGINITNETADDREX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ADDPORT,0,0)
00609 
00610 #define P6AI_INTERVAL(arg,data)     P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00611 #define P6AI_INTERVAL_ISO860(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ISO860,0,0)
00612 #define P6AI_INTERVAL_DEC(arg,data) P6ARGINITINTERVALEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00613 #define P6AI_INTERVAL_HEXL(arg,data)P6ARGINITINTERVALEX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00614 #define P6AI_INTERVAL_HEXU(arg,data)P6ARGINITINTERVALEX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00615 
00616 #define P6AI_TIME(arg,data)         P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00617 #define P6AI_TIME_ISO860(arg,data)  P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_ISO860,0,0)
00618 #define P6AI_TIME_RFC822(arg,data)  P6ARGINITINTERVALEX(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_RFC822,0,0)
00619 #define P6AI_TIME_DEC(arg,data)     P6ARGINITINTERVALEX(arg,data,P6R::P6AF_DEC,0,0,P6R::P6AFL_NOFLAGS,0,0)
00620 #define P6AI_TIME_HEXL(arg,data)    P6ARGINITINTERVALEX(arg,data,P6R::P6AF_HEXL,0,0,P6R::P6AFL_NOFLAGS,0,0)
00621 #define P6AI_TIME_HEXU(arg,data)    P6ARGINITINTERVALEX(arg,data,P6R::P6AF_HEXU,0,0,P6R::P6AFL_NOFLAGS,0,0)
00622 
00623 #define P6AI_BSTR(arg,data)         P6ARGINITBSTR(arg,data,P6R::P6AF_STR,0,0,P6R::P6AFL_NOFLAGS,0,0)
00624 
00625 
00629 #ifndef interface
00630 #  define interface struct
00631 #endif
00632 
00638 #ifndef P6FROZEN
00639 #  define P6FROZEN
00640 #endif
00641 
00645 #ifndef P6API
00646 #  define P6API
00647 #endif
00648 
00649 #define P6IIDOF(iface)             ((const P6R::IID) IF_##iface)
00650 
00658 #define P6DECLARE_IID(iface)       static const P6R::IID IID_##iface = IF_##iface
00659 
00660 
00665 #define P6DECLARE_CID(component)   static const P6R::CID CID_##component = COMP_##component
00666 
00671 #define P6DECLARE_CATID(category)  static const P6R::CATID CATID_##category = CAT_##category
00672 
00673 #ifdef _WIN32
00674 #  define xNOEXPORT
00675 #  define xEXPORT             __declspec(dllexport)
00676 #  define xIMPORT             __declspec(dllimport)
00677 #  define xSTDCALL            __stdcall
00678 #  define xCCALL              __cdecl
00679 #elif defined(__GNUC__) && ((__GNUC__ ==3) && (__GNUC_MINOR__ >= 4) && (__GNUC_PATCHLEVEL__ >= 4))
00680 #  define xNOEXPORT           __attribute__ ((visibility ("hidden")))
00681 #  define xEXPORT             __attribute__ ((visibility ("default")))
00682 #  define xIMPORT             __attribute__ ((visibility ("default")))
00683 #       ifdef P6_SOLARIS
00684 #     define xSTDCALL
00685 #       else
00686 #          define xSTDCALL                    __attribute__ ((__stdcall__))
00687 #       endif
00688 #  define xCCALL              __attribute__ ((__cdecl__))
00689 #elif defined(__GNUC__) && (__GNUC__ ==4)
00690 #  define xNOEXPORT
00691 #  define xEXPORT             __attribute__ ((visibility ("default")))
00692 #  define xIMPORT             __attribute__ ((visibility ("default")))
00693 #  define xSTDCALL            __attribute__ ((__stdcall__))
00694 #  define xCCALL              __attribute__ ((__cdecl__))
00695 #elif defined(__SUNPRO_CC)
00696 #  define xNOEXPORT           __hidden 
00697 #  define xEXPORT             __global
00698 #  define xIMPORT
00699 #  define xSTDCALL
00700 #  define xCCALL
00701 #else
00702 #error "Unsupported/Unknown platform - unable to define function call and visibility defines"
00703 #endif
00704 
00705 #define P6NOEXPORT   xNOEXPORT
00706 #define P6EXPORT     xEXPORT
00707 #define P6IMPORT     xIMPORT
00708 #define P6STDCALL    xSTDCALL
00709 #define P6CCALL      xCCALL
00710 
00711 #define P6COMMETHOD        virtual P6NOEXPORT P6R::P6ERR P6STDCALL
00712 #define P6COMMETHOD_(type) virtual P6NOEXPORT type P6STDCALL
00713 #define P6COMMETHODIMPL    P6NOEXPORT P6R::P6ERR
00714 #define P6COMVAMETHOD      virtual P6NOEXPORT P6R::P6ERR P6CCALL 
00715 #define P6COMVAMETHODIMPL  P6NOEXPORT P6R::P6ERR P6CCALL 
00716 #ifndef PURE
00717 #  define PURE = 0
00718 #endif
00719 #define P6CLASSMETHOD      P6NOEXPORT P6R::P6ERR P6STDCALL
00720 #define P6CLASSMETHODIMPL  P6NOEXPORT P6R::P6ERR
00721 
00722 #define IN
00723 #define OUT
00724 #define INOUT
00725 #define P6DEPRICATED
00726 
00727 #define P6INVALIDTHREADID  ((P6R::P6THREADID)0)
00728 
00729 #define P6MIN(a,b) (((a) < (b)) ? (a) : (b))
00730 #define P6MAX(a,b) (((a) > (b)) ? (a) : (b))
00731 
00732 #define P6WAITINFINITE   (P6R::P6INTERVAL)-1
00733 #define P6WAITNONE       (P6R::P6INTERVAL)0
00734 
00735 #define P6MAXPATH       4096
00736 #define P6MAXHOSTNAME   1025
00737 #define P6MAXOSNAMESTR  128
00738 #define P6MAXVERSIONSTR 1024
00739 #define P6MAXARCHSTR    64
00740 
00741 #define P6FILE __FILE__
00742 #define P6LINE __LINE__
00743 #define P6FILEANDLINE __FILE__,__LINE__
00744 
00745 #ifdef  __cplusplus
00746 }
00747 #endif
00748 
00749 #ifdef  __cplusplus
00750 
00754 typedef struct P6AUTO_INT32 {
00755    P6R::P6INT32      value;
00756    P6AUTO_INT32() : value(0) {};
00757 } P6AUTO_INT32;
00758 
00759 #endif
00760 
00761 } // namespace
00762 
00763 
00764 #ifdef  __cplusplus
00765 extern "C" {
00766 #endif
00767 
00775 typedef P6R::P6UINT32 P6BTFLAGS;
00776 const P6BTFLAGS   BT_NOFLAGS     = 0x00000000;
00777 const P6BTFLAGS   BT_ADDPATHS    = 0x00000001;  
00778 const P6BTFLAGS   BT_FMTXML      = 0x00000002;  
00779 const P6BTFLAGS   BT_FMTCSV      = 0x00000004;  
00780 const P6BTFLAGS   BT_NODEMANGLE  = 0x00000008;  
00788 typedef enum {
00789    P6D_STARTUP,         
00790    P6D_COMPONENT,       
00791    P6D_CONF,            
00792    P6D_LANG,            
00793    P6D_DATA,            
00794    P6D_LICENSE,         
00795    P6D_LOG,             
00796    P6D_MAX
00797 } P6DIRS;
00798 
00799 
00802 #ifdef  __cplusplus
00803 }
00804 #endif
00805 
00806 #endif
00807 
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines
Copyright © 2004 - 2010 P6R Inc. - All Rights Reserved.