portable.h

00001 // $Id: portable.h 21 2010-09-05 04:18:17Z cschwarz1 $
00002 
00003 #ifndef BASE_PORTABLE_H
00004 #define BASE_PORTABLE_H
00005 
00006 namespace base {
00007 #if defined(_MSC_VER)
00008     #if _MSC_VER < 1310
00009         typedef __int64 longlong_t;
00010         typedef unsigned __int64 u_longlong_t;
00011     #else
00012         typedef long long longlong_t;
00013         typedef unsigned long long u_longlong_t;
00014     #endif
00015 #elif defined(__GNUC__)
00016     typedef long long longlong_t;
00017     typedef unsigned long long u_longlong_t;
00018 #else
00019     // unknown compiler, just try long long
00020     typedef long long longlong_t;              
00021     typedef unsigned long long u_longlong_t;   
00022 #endif
00023 }
00024 
00025 #define DISALLOW_COPY_CONSTRUCTOR_AND_ASSIGNMENT(Class) \
00026     private: \
00027  \
00028         Class(const Class &); \
00029  \
00030         Class &operator=(const Class &)
00031 
00032 #if defined(_MSC_VER) && defined(_WIN32) && defined(_DLL)
00033     #ifdef PPBASE_EXPORTS
00034         #define PPBASE_EXPORT __declspec(dllexport)
00035     #else
00036         #define PPBASE_EXPORT __declspec(dllimport)
00037     #endif
00038     #ifdef PPBASE_CGI_EXPORTS
00039         #define PPBASE_CGI_EXPORT __declspec(dllexport)
00040     #else
00041         #define PPBASE_CGI_EXPORT __declspec(dllimport)
00042     #endif
00043     #ifdef PPBASE_CRYPTO_EXPORTS
00044         #define PPBASE_CRYPTO_EXPORT __declspec(dllexport)
00045     #else
00046         #define PPBASE_CRYPTO_EXPORT __declspec(dllimport)
00047     #endif
00048     #ifdef PPBASE_HTTP_EXPORTS
00049         #define PPBASE_HTTP_EXPORT __declspec(dllexport)
00050     #else
00051         #define PPBASE_HTTP_EXPORT __declspec(dllimport)
00052     #endif
00053     #ifdef PPBASE_SOAP_EXPORTS
00054         #define PPBASE_SOAP_EXPORT __declspec(dllexport)
00055     #else
00056         #define PPBASE_SOAP_EXPORT __declspec(dllimport)
00057     #endif
00058 #else
00059     #define PPBASE_EXPORT
00060     #define PPBASE_CGI_EXPORT
00061     #define PPBASE_CRYPTO_EXPORT
00062     #define PPBASE_HTTP_EXPORT
00063     #define PPBASE_SOAP_EXPORT
00064 #endif
00065 
00066 #endif