version 1.22, 2004/06/29 17:24:02
|
version 1.28, 2005/02/02 19:15:58
|
|
|
//%2003//////////////////////////////////////////////////////////////////////// |
//%2004//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Company, L. P., IBM Corp., The Open Group, Tivoli Systems. |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; | // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
// IBM Corp.; EMC Corporation, The Open Group. | // IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
// | // |
// 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 |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
| |
class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService | class PEGASUS_PPM_LINKAGE ProviderManagerService : public MessageQueueService |
{ | { |
friend class CMPIProviderManager; |
|
public: | public: |
static ProviderManagerService* providerManagerService; |
ProviderManagerService( |
|
ProviderRegistrationManager* providerRegistrationManager, |
ProviderManagerService(void); |
|
ProviderManagerService(ProviderRegistrationManager * providerRegistrationManager, |
|
CIMRepository * repository); | CIMRepository * repository); |
| |
|
virtual ~ProviderManagerService(); |
| |
virtual ~ProviderManagerService(void); |
|
|
|
// temp |
|
void unloadIdleProviders(); | void unloadIdleProviders(); |
| |
static void indicationCallback(CIMProcessIndicationRequestMessage* request); | static void indicationCallback(CIMProcessIndicationRequestMessage* request); |
|
static void handleCimResponse( |
|
CIMRequestMessage& request, CIMResponseMessage& response); |
|
|
|
private: |
|
ProviderManagerService(); |
| |
protected: |
|
virtual Boolean messageOK(const Message * message); | virtual Boolean messageOK(const Message * message); |
virtual void handleEnqueue(void); |
virtual void handleEnqueue(); |
virtual void handleEnqueue(Message * message); | virtual void handleEnqueue(Message * message); |
| |
virtual void _handle_async_request(AsyncRequest * request); | virtual void _handle_async_request(AsyncRequest * request); |
| |
CIMRepository* _repository; |
|
|
|
private: |
|
//static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleServiceOperation(void * arg) throw(); |
|
|
|
//void handleStartService() thorw(); |
|
//void handleStopService() thorw(); |
|
//void handlePauseService() thorw(); |
|
//void handleResumeService() thorw(); |
|
|
|
static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleCimOperation( | static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL handleCimOperation( |
void * arg) throw(); |
void* arg) ; |
| |
void handleCimRequest(AsyncOpNode *op, Message* message); | void handleCimRequest(AsyncOpNode *op, Message* message); |
| |
|
Message* _processMessage(CIMRequestMessage* request); |
|
|
static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL | static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL |
_unloadIdleProvidersHandler(void* arg) throw(); | _unloadIdleProvidersHandler(void* arg) throw(); |
| |
ProviderIdContainer _getProviderIdContainer( |
|
const CIMRequestMessage* message); |
|
|
|
void _updateProviderModuleStatus( | void _updateProviderModuleStatus( |
CIMInstance& providerModule, | CIMInstance& providerModule, |
Uint16 fromStatus, | Uint16 fromStatus, |
Uint16 toStatus); | Uint16 toStatus); |
| |
private: |
static ProviderManagerService* providerManagerService; |
|
|
|
CIMRepository* _repository; |
|
|
SafeQueue<AsyncOpNode *> _incomingQueue; | SafeQueue<AsyncOpNode *> _incomingQueue; |
SafeQueue<AsyncOpNode *> _outgoingQueue; | SafeQueue<AsyncOpNode *> _outgoingQueue; |
| |
ProviderManagerRouter* _providerManagerRouter; |
ProviderManagerRouter* _basicProviderManagerRouter; |
|
ProviderManagerRouter* _oopProviderManagerRouter; |
| |
ProviderRegistrationManager* _providerRegistrationManager; | ProviderRegistrationManager* _providerRegistrationManager; |
| |
|
|
unloading idle providers at the same time. | unloading idle providers at the same time. |
*/ | */ |
AtomicInt _unloadIdleProvidersBusy; | AtomicInt _unloadIdleProvidersBusy; |
|
|
|
friend class CMPIProviderManager; |
|
|
}; | }; |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |