version 1.17, 2004/05/17 23:42:58
|
version 1.18, 2004/05/18 23:58:41
|
|
|
// (carolann_graves@hp.com) | // (carolann_graves@hp.com) |
// Mike Day, IBM (mdday@us.ibm.com) | // Mike Day, IBM (mdday@us.ibm.com) |
// Adrian Schuur, IBM (schuur@de.ibm.com) | // Adrian Schuur, IBM (schuur@de.ibm.com) |
|
// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
#define Pegasus_ProviderManagerService_h | #define Pegasus_ProviderManagerService_h |
| |
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/Thread.h> |
|
#include <Pegasus/Common/Array.h> |
|
#include <Pegasus/Common/Pair.h> |
|
#include <Pegasus/Common/MessageQueueService.h> | #include <Pegasus/Common/MessageQueueService.h> |
#include <Pegasus/Common/CIMMessage.h> | #include <Pegasus/Common/CIMMessage.h> |
#include <Pegasus/Common/OperationContextInternal.h> | #include <Pegasus/Common/OperationContextInternal.h> |
|
#include <Pegasus/Common/AutoPtr.h> |
#include <Pegasus/Repository/CIMRepository.h> | #include <Pegasus/Repository/CIMRepository.h> |
#include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h> | #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h> |
| |
#include <Pegasus/ProviderManager2/SafeQueue.h> | #include <Pegasus/ProviderManager2/SafeQueue.h> |
#include <Pegasus/ProviderManager2/ProviderManager.h> |
#include <Pegasus/ProviderManager2/ProviderManagerRouter.h> |
| |
#include <Pegasus/ProviderManager2/Linkage.h> | #include <Pegasus/ProviderManager2/Linkage.h> |
| |
|
|
| |
#define IDLE_LIMIT 300 | #define IDLE_LIMIT 300 |
| |
class ProviderRegistrationManager; |
|
class ProviderManager; |
|
|
|
class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService | class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService |
{ | { |
friend class CMPIProviderManager; | friend class CMPIProviderManager; |
|
|
// temp | // temp |
void unload_idle_providers(void); | void unload_idle_providers(void); |
| |
|
static void indicationCallback( |
|
CIMProcessIndicationRequestMessage* request); |
|
|
protected: | protected: |
virtual Boolean messageOK(const Message * message); | virtual Boolean messageOK(const Message * message); |
virtual void handleEnqueue(void); | virtual void handleEnqueue(void); |
|
|
| |
void handleCimRequest(AsyncOpNode *op, Message* message); | void handleCimRequest(AsyncOpNode *op, Message* message); |
| |
ProviderManager* _lookupProviderManager(const String& interfaceType); |
|
|
|
ProviderIdContainer _getProviderIdContainer( | ProviderIdContainer _getProviderIdContainer( |
const CIMRequestMessage* message); | const CIMRequestMessage* message); |
| |
|
|
SafeQueue<AsyncOpNode *> _incomingQueue; | SafeQueue<AsyncOpNode *> _incomingQueue; |
SafeQueue<AsyncOpNode *> _outgoingQueue; | SafeQueue<AsyncOpNode *> _outgoingQueue; |
| |
//Array<Pair<ProviderManager *, ProviderManagerModule> > _providerManagers; |
ProviderManagerRouter* _providerManagerRouter; |
| |
ProviderRegistrationManager* _providerRegistrationManager; | ProviderRegistrationManager* _providerRegistrationManager; |
|
|
|
static Uint32 _indicationServiceQueueId; |
}; | }; |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |