//---------------------------------------------------------------------------- // // Copyright (C) Intel Corporation, 2006 - 2007. // // File: global.h // // Contents: Global declarations and definitions. // // Notes: //---------------------------------------------------------------------------- #ifndef _MPS_GLOBAL__H__ #define _MPS_GLOBAL__H__ //=================================================== // INCLUDES //=================================================== #include #include #include #include #include #include "GuardedCounter.h" #if defined (ACE_WIN32) && !defined (ACE_LACKS_WIN32_SERVICES) && defined (_SERVICE) #include "MPSEventLogger.h" #endif /* ACE_WIN32 && !(ACE_LACKS_WIN32_SERVICES) && (_SERVICE)*/ using namespace std; //=================================================== // DEFINES //=================================================== #define MPS_NAME "MPS" #define DYNAMIC_CONFIGURATION_DELAY 10 #define MAX_NOTIFICATIONS 8 #define TIMEOUT_DELAY 60 #define TIMEOUT_INTERVAL 0 #if defined (ACE_WIN32) #define STATIC_CONFIG_FILENAME "conf\\mps.config" #define DYNAMIC_CONFIG_FILENAME "conf\\mps_dynamic.config" #else #define STATIC_CONFIG_FILENAME "conf/mps.config" #define DYNAMIC_CONFIG_FILENAME "conf/mps_dynamic.config" #endif //=================================================== // ENUM //=================================================== enum STATUS{STATUS_FAILURE=-1, STATUS_SUCCESS=0, STATUS_FATAL_ERROR, STATUS_GENERAL_ERROR, STATUS_RECOVER_ERROR, STATUS_BAD_REQUEST, STATUS_MALLOC_FAILURE, STATUS_ILLEGAL_PARAMS, STATUS_CONNECTION_CLOSED, STATUS_NETWORK_ERROR, STATUS_QUEUE_TIMEOUT, STATUS_QUEUE_FULL, STATUS_QUEUE_DEACTIVATED, STATUS_LOCK_FAILURE, STATUS_ILLEGAL_APF_MESSAGE, STATUS_ILLEGAL_SOCKS_MESSAGE, STATUS_INVALID_CHANNEL, STATUS_INVALID_TUNNEL_STATE, STATUS_OPERATION_NOT_SUPPORTED, STATUS_AUTH_FAILURE, }; enum PRIORITY { PRIO_HIGH, PRIO_MEDIUM, PRIO_LOW }; //=================================================== // GLOBALS AND CONSTANT //=================================================== extern ACE_String_Base absolutePath; extern ACE_TString logFileNameFull; const int DFLT_ZERO = 0; const int DFLT_NEGETIVE_VALUE = 0; // Not currently supported in Linux #ifdef ACE_WIN32 const char AUTH_DLL_FUNC_NAME[13] = "Authenticate"; const int MAX_DLL_ERR_LEN = 512; // Declare the type of the DLL symbol: typedef UINT8 (*SOAP_Authenticate)(const char* userName ,const char* userPassword , const char* connectionStr ,char* errorString, UINT32 err_len); extern ACE_DLL _SOCKS_AUTH_DLL; extern ACE_DLL _AMT_AUTH_DLL; extern SOAP_Authenticate _socks_auth_func; extern SOAP_Authenticate _amt_auth_func; #endif /* ACE_WIN32 */ #if defined (ACE_WIN32) && !defined (ACE_LACKS_WIN32_SERVICES) && defined (_SERVICE) extern MPSEventLoggerWrapper m_pLogger; #endif /* ACE_WIN32 && !(ACE_LACKS_WIN32_SERVICES) && (_SERVICE)*/ const int MAX_TUNNEL_COUNTER=1000; const int MAX_TCP_COUNTER=1000; extern GuardedCounter TUNNEL_COUNTER; extern GuardedCounter TCP_COUNTER; //=================================================== // GLOBAL MACROS //=================================================== //log: // Listing 1 code/ch03 #define MY_TRACE LM_TRACE, ACE_TEXT ("(%t)[%D] [%M] ") #define MY_DEBUG LM_DEBUG, ACE_TEXT ("(%t)[%D] [%M] ") #define MY_INFO LM_INFO, ACE_TEXT ("[%D] [%M] ") #define MY_NOTICE LM_NOTICE, ACE_TEXT ("[%D] [%M] ") #define MY_WARNING LM_WARNING, ACE_TEXT ("[%D] [%M] ") #define MY_ERROR LM_ERROR, ACE_TEXT ("[%D] [%M] ") #define MY_CRITICAL LM_CRITICAL, ACE_TEXT ("[%D] [%M] ") #define MY_ALERT LM_ALERT, ACE_TEXT ("[%D] [%M] ") #define MY_EMERGENCY LM_EMERGENCY, ACE_TEXT ("[%D] [%M] ") #define CHECK_STATUS_REP(S1, TEXT) \ do { \ if ((S1) != STATUS_SUCCESS) \ { \ ACE_DEBUG((MY_DEBUG TEXT)); \ return S1; \ } \ }while (0) #define CHECK_ERROR_STATUS_REP(S1, S2, TEXT)\ do { \ if ((S1) == (S2)) \ { \ ACE_DEBUG((MY_DEBUG TEXT)); \ return S1; \ } \ }while (0) #define PRINT_ERROR_STATUS(S, TEXT) \ do { \ if ((S) != STATUS_SUCCESS) \ ACE_DEBUG((MY_DEBUG TEXT)); \ }while (0) #define TRY_ACQUIRE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN) \ ACE_Guard< MUTEX > OBJ (LOCK, 0); \ if (OBJ.locked () == 0) { return RETURN; } #define TRY_ACQUIRE_GUARD(MUTEX, OBJ, LOCK) \ ACE_Guard< MUTEX > OBJ (LOCK, 0); #define TRY_ACQUIRE_WRITE_GUARD(MUTEX, OBJ, LOCK) \ ACE_Write_Guard< MUTEX > OBJ (LOCK, 0); #define TRY_ACQUIRE_WRITE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN) \ ACE_Write_Guard< MUTEX > OBJ (LOCK, 0); \ if (OBJ.locked () == 0) { return RETURN; } #endif //_MPS_GLOBAL__H__