version 1.2, 2002/04/20 21:15:30
|
version 1.7, 2003/03/11 21:26:54
|
|
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM, |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, |
// The Open Group, Tivoli Systems | // The Open Group, Tivoli Systems |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
|
|
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
| |
#include <iostream> | #include <iostream> |
#include <cassert> |
|
#include <cstdio> | #include <cstdio> |
#include <cctype> | #include <cctype> |
#include <ctime> | #include <ctime> |
|
|
const String& rootPath, | const String& rootPath, |
Boolean dynamicReg, | Boolean dynamicReg, |
Boolean staticConsumers, | Boolean staticConsumers, |
Boolean persistence) |
Boolean persistence, |
|
Uint32 portNumber) |
: _dieNow(false), _rootPath(rootPath), | : _dieNow(false), _rootPath(rootPath), |
_dynamicReg(dynamicReg), | _dynamicReg(dynamicReg), |
_staticConsumers(staticConsumers), | _staticConsumers(staticConsumers), |
_persistence(persistence) |
_persistence(persistence), |
|
_portNumber(portNumber) |
{ | { |
const char METHOD_NAME[] = "CIMListener::CIMListener()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::CIMListener()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
| |
// -- Save the monitor or create a new one: | // -- Save the monitor or create a new one: |
| |
|
|
| |
SSLContext * sslcontext = NULL; | SSLContext * sslcontext = NULL; |
| |
_acceptor = new HTTPAcceptor(_monitor, _cimExportRequestDecoder, sslcontext); |
_acceptor = new HTTPAcceptor(_monitor, _cimExportRequestDecoder, false, portNumber, sslcontext); |
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
} | } |
| |
CIMListener::~CIMListener() | CIMListener::~CIMListener() |
{ | { |
const char METHOD_NAME[] = "CIMListener::~CIMListener()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::~CIMListener()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
| |
// Note: do not delete the acceptor because it belongs to the Monitor | // Note: do not delete the acceptor because it belongs to the Monitor |
// which takes care of disposing of it. | // which takes care of disposing of it. |
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
} | } |
| |
void CIMListener::bind(Uint32 port) |
void CIMListener::bind() |
{ | { |
const char METHOD_NAME[] = "CIMListener::bind()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::bind()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
|
|
// not the best place to build the service url, but it works for now |
|
// because the address string is accessible mdday |
|
| |
_acceptor->bind(port); |
_acceptor->bind(); |
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
} | } |
| |
void CIMListener::runForever() | void CIMListener::runForever() |
|
|
| |
void CIMListener::stopClientConnection() | void CIMListener::stopClientConnection() |
{ | { |
const char METHOD_NAME[] = "CIMListener::stopClientConnection()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::stopClientConnection()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
| |
_acceptor->closeConnectionSocket(); | _acceptor->closeConnectionSocket(); |
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
} | } |
| |
void CIMListener::shutdown() | void CIMListener::shutdown() |
{ | { |
const char METHOD_NAME[] = "CIMListener::shutdown()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::shutdown()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
| |
_dieNow = true; | _dieNow = true; |
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
} | } |
| |
void CIMListener::resume() | void CIMListener::resume() |
{ | { |
const char METHOD_NAME[] = "CIMListener::resume()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::resume()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
| |
_acceptor->reopenConnectionSocket(); | _acceptor->reopenConnectionSocket(); |
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
} |
|
|
|
CIMExportRequestDispatcher* CIMListener::getDispatcher() |
|
{ |
|
const char METHOD_NAME[] = "CIMListener::getDispatcher()"; |
|
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
|
|
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
|
|
|
return _cimExportRequestDispatcher; |
|
} | } |
| |
Uint32 CIMListener::getOutstandingRequestCount() | Uint32 CIMListener::getOutstandingRequestCount() |
{ | { |
const char METHOD_NAME[] = "CIMListener::getOutstandingRequestCount()"; |
PEG_METHOD_ENTER(TRC_SERVER, "CIMListener::getOutstandingRequestCount()"); |
|
|
PEG_FUNC_ENTER(TRC_SERVER, METHOD_NAME); |
|
| |
PEG_FUNC_EXIT(TRC_SERVER, METHOD_NAME); |
PEG_METHOD_EXIT(); |
| |
return (_acceptor->getOutstandingRequestCount()); | return (_acceptor->getOutstandingRequestCount()); |
} | } |