169 lines
4.9 KiB
C++

//----------------------------------------------------------------------------
//
// 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 <ace/Log_Msg.h>
#include <ace/Log_Priority.h>
#include <ace/String_Base.h>
#include <ace/DLL.h>
#include <ace/Global_Macros.h>
#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<ACE_TCHAR> 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__