version 1.110, 2003/07/29 21:23:08
|
version 1.111, 2003/08/17 22:44:35
|
|
|
| |
| |
CIMServer::CIMServer(Monitor* monitor) | CIMServer::CIMServer(Monitor* monitor) |
: _dieNow(false) |
: _dieNow(false), _monitor(monitor), monitor2(0), _type(OLD) |
{ | { |
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::CIMServer()"); | PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::CIMServer()"); |
|
_init(); |
|
|
|
PEG_METHOD_EXIT(); |
|
} |
|
|
|
|
|
CIMServer::CIMServer(monitor_2* m2) |
|
: _dieNow(false), _monitor(0), monitor2(m2), _type(NEW) |
|
{ |
|
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::CIMServer()"); |
|
_init(); |
|
|
|
monitor2->set_accept_dispatch(pegasus_acceptor::accept_dispatch); |
|
monitor2->set_session_dispatch(HTTPConnection2::connection_dispatch); |
|
|
|
PEG_METHOD_EXIT(); |
|
} |
|
|
|
|
|
void CIMServer::_init(void) |
|
{ |
| |
String repositoryRootPath = String::EMPTY; | String repositoryRootPath = String::EMPTY; |
| |
// -- Save the monitor or create a new one: | // -- Save the monitor or create a new one: |
| |
_monitor = monitor; |
|
|
|
repositoryRootPath = | repositoryRootPath = |
ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("repositoryDir")); | ConfigManager::getHomedPath(ConfigManager::getInstance()->getCurrentValue("repositoryDir")); |
| |
|
|
getSigHandle()->registerHandler(PEGASUS_SIGTERM, shutdownSignalHandler); | getSigHandle()->registerHandler(PEGASUS_SIGTERM, shutdownSignalHandler); |
getSigHandle()->activate(PEGASUS_SIGTERM); | getSigHandle()->activate(PEGASUS_SIGTERM); |
| |
PEG_METHOD_EXIT(); |
|
} | } |
| |
|
|
|
|
|
|
CIMServer::~CIMServer() | CIMServer::~CIMServer() |
{ | { |
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::~CIMServer()"); | PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::~CIMServer()"); |
|
|
Uint32 portNumber, | Uint32 portNumber, |
Boolean useSSL) | Boolean useSSL) |
{ | { |
|
if(_type == OLD ){ |
HTTPAcceptor* acceptor; | HTTPAcceptor* acceptor; |
acceptor = new HTTPAcceptor(_monitor, | acceptor = new HTTPAcceptor(_monitor, |
_httpAuthenticatorDelegator, | _httpAuthenticatorDelegator, |
|
|
| |
_acceptors.append(acceptor); | _acceptors.append(acceptor); |
} | } |
|
else { |
|
pegasus_acceptor* acceptor = |
|
new pegasus_acceptor(monitor2, |
|
_httpAuthenticatorDelegator, |
|
localConnection, |
|
portNumber, |
|
useSSL ? _getSSLContext() : 0); |
|
acceptor->bind(); |
|
} |
|
} |
| |
void CIMServer::bind() | void CIMServer::bind() |
{ | { |
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::bind()"); | PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::bind()"); |
| |
|
if(_type == OLD) { |
|
|
if (_acceptors.size() == 0) | if (_acceptors.size() == 0) |
{ | { |
// l10n | // l10n |
|
|
{ | { |
_acceptors[i]->bind(); | _acceptors[i]->bind(); |
} | } |
|
} |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
| |
void CIMServer::runForever() | void CIMServer::runForever() |
{ | { |
|
if(_type == OLD) { |
|
|
// Note: Trace code in this method will be invoked frequently. | // Note: Trace code in this method will be invoked frequently. |
| |
static int modulator = 0; | static int modulator = 0; |
|
|
{ | { |
} | } |
} | } |
|
|
} | } |
| |
if (handleShutdownSignal) | if (handleShutdownSignal) |
|
|
handleShutdownSignal = false; | handleShutdownSignal = false; |
} | } |
} | } |
|
} |
|
else { |
|
monitor2->run(); |
|
} |
| |
} | } |
| |
|
|
{ | { |
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::stopClientConnection()"); | PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::stopClientConnection()"); |
| |
|
if(_type == OLD) { |
|
|
for (Uint32 i=0; i<_acceptors.size(); i++) | for (Uint32 i=0; i<_acceptors.size(); i++) |
{ | { |
_acceptors[i]->closeConnectionSocket(); | _acceptors[i]->closeConnectionSocket(); |
} | } |
|
} |
|
|
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
|
|
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::getOutstandingRequestCount()"); | PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::getOutstandingRequestCount()"); |
| |
Uint32 requestCount = 0; | Uint32 requestCount = 0; |
|
|
|
if(_type == OLD) { |
for (Uint32 i=0; i<_acceptors.size(); i++) | for (Uint32 i=0; i<_acceptors.size(); i++) |
{ | { |
requestCount += _acceptors[i]->getOutstandingRequestCount(); | requestCount += _acceptors[i]->getOutstandingRequestCount(); |
} | } |
|
} |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return requestCount; | return requestCount; |