113 lines
2.7 KiB
C++

//----------------------------------------------------------------------------
//
// Copyright (C) Intel Corporation, 2007 - 2008.
//
// File: CommonOptions.h
//
// Contents: A singelton class which caches common options
//
// Notes:
//----------------------------------------------------------------------------
#ifndef COMMON_OPTIONS_H
#define COMMON_OPTIONS_H
#include <ctime>
#include <ace/SString.h>
// A singelton class which caches common options
class CommonOptions
{
public:
// Return a Singleton.
static CommonOptions& instance();
// Gets the common options data members:
inline const unsigned int * getMaximumWinSize() const
{
return _maximumWinSize;
}
inline const unsigned int * getMinimumWinSize() const
{
return _minimumWinSize;
}
inline const unsigned int * getMaxQueueSize() const
{
return _maxQueueSize;
}
inline const unsigned int * getMaxChannels() const
{
return _maxChannels;
}
inline const time_t * getMaxTunnelTimeout() const
{
return _maxTunnelTimeout;
}
inline const ACE_TString * getMCSocksListenIP() const
{
return _mcSocksListenIP;
}
//inline const ACE_TString * getMCSocksListenIPv6() const
//{
// return _mcSocksListenIPv6;
//}
// Sets the Common Options data members:
// NOTE: No mutex is taken on these functions, since they are meant
// to be called only once in the beginnning of the program's run
inline void setMaximumWinSize(const unsigned int * maximumWinSize)
{
_maximumWinSize = maximumWinSize;
}
inline void setMinimumWinSize(const unsigned int * minimumWinSize)
{
_minimumWinSize = minimumWinSize;
}
inline void setMaxQueueSize(const unsigned int * maxQueueSize)
{
_maxQueueSize = maxQueueSize;
}
inline void setMaxChannels(const unsigned int * maxChannels)
{
_maxChannels = maxChannels;
}
inline void setMaxTunnelTimeout(const time_t * maxTunnelTimeout)
{
_maxTunnelTimeout = maxTunnelTimeout;
}
inline void setMCSocksListenIP(const ACE_TString * mcSocksListenIP)
{
_mcSocksListenIP = mcSocksListenIP;
}
//inline void setMCSocksListenIPv6(const ACE_TString * mcSocksListenIP)
//{
// _mcSocksListenIPv6 = mcSocksListenIP;
//}
// Dtor
~CommonOptions();
private:
// private ctor
CommonOptions():_maximumWinSize(), _minimumWinSize(), _maxQueueSize(), _maxChannels(), _maxTunnelTimeout(),
_mcSocksListenIP(){}
// ConfigFormats Singleton instance.
static CommonOptions * _instance;
const unsigned int * _maximumWinSize;
const unsigned int * _minimumWinSize;
const unsigned int * _maxQueueSize;
const unsigned int * _maxChannels;
const time_t * _maxTunnelTimeout;
const ACE_TString * _mcSocksListenIP;
//const ACE_TString * _mcSocksListenIPv6;
};
#endif /* COMMON_OPTIONS_H */