version 1.81, 2006/10/24 18:00:12
|
version 1.82, 2006/11/14 18:34:59
|
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// Author: Mike Brasher (mbrasher@bmc.com) |
|
// |
|
// Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com) |
|
// Mike Day (mdday@us.ibm.com) |
|
// Yi Zhou (yi_zhou@hp.com) |
|
// Carol Ann Krug Graves, Hewlett-Packard Company |
|
// (carolann_graves@hp.com) |
|
// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
|
// Karl Schopmeyer (k.schopmeyer@opengroup.org) |
|
// Adrian Schuur (schuur@de.ibm.com) |
|
// Seema Gupta (gseema@in.ibm.com for PEP135) |
|
// Chip Vincent (cvincent@us.ibm.com) |
|
// Alagaraja Ramasubramanian (alags_raj@in.ibm.com) for Bug#1090 |
|
// Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2 |
|
// David Dillard, VERITAS Software Corp. |
|
// (david.dillard@veritas.com) |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#ifndef PegasusDispatcher_Dispatcher_h | #ifndef PegasusDispatcher_Dispatcher_h |
|
|
#include <Pegasus/Repository/CIMRepository.h> | #include <Pegasus/Repository/CIMRepository.h> |
| |
#include <Pegasus/Server/CIMServer.h> | #include <Pegasus/Server/CIMServer.h> |
#include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h> |
#include \ |
|
<Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h> |
#include <Pegasus/Server/Linkage.h> | #include <Pegasus/Server/Linkage.h> |
| |
#include <Pegasus/Common/QueryExpressionRep.h> | #include <Pegasus/Common/QueryExpressionRep.h> |
|
|
| |
if (providerInfo.providerIdContainer.get() != 0) | if (providerInfo.providerIdContainer.get() != 0) |
{ | { |
providerIdContainer.reset( |
providerIdContainer.reset(new ProviderIdContainer( |
new ProviderIdContainer(*providerInfo.providerIdContainer.get())); |
*providerInfo.providerIdContainer.get())); |
} | } |
} | } |
| |
return(*this); |
return *this; |
} | } |
| |
CIMName className; | CIMName className; |
|
|
AutoPtr<ProviderIdContainer> providerIdContainer; | AutoPtr<ProviderIdContainer> providerIdContainer; |
| |
private: | private: |
ProviderInfo(void) |
ProviderInfo() |
{ | { |
} | } |
|
|
}; | }; |
| |
/* Class to manage the aggregation of data required by post processors. This | /* Class to manage the aggregation of data required by post processors. This |
|
|
{ | { |
friend class CIMOperationRequestDispatcher; | friend class CIMOperationRequestDispatcher; |
public: | public: |
/* Operation Aggregate constructor. Builds an aggregate |
/** Operation Aggregate constructor. Builds an aggregate |
object. | object. |
@param request | @param request |
@param msgRequestType | @param msgRequestType |
|
|
@param dest | @param dest |
@param className | @param className |
*/ | */ |
|
|
OperationAggregate(CIMRequestMessage* request, | OperationAggregate(CIMRequestMessage* request, |
Uint32 msgRequestType, | Uint32 msgRequestType, |
String messageId, | String messageId, |
|
|
Uint32 _totalReceivedNotSupported; | Uint32 _totalReceivedNotSupported; |
}; | }; |
| |
class PEGASUS_SERVER_LINKAGE CIMOperationRequestDispatcher : public MessageQueueService |
class PEGASUS_SERVER_LINKAGE CIMOperationRequestDispatcher : |
|
public MessageQueueService |
{ | { |
friend class QuerySupportRouter; | friend class QuerySupportRouter; |
public: | public: |
|
|
void handleInvokeMethodRequest( | void handleInvokeMethodRequest( |
CIMInvokeMethodRequestMessage* request); | CIMInvokeMethodRequestMessage* request); |
| |
static void _forwardForAggregationCallback(AsyncOpNode *, |
static void _forwardForAggregationCallback( |
|
AsyncOpNode*, |
MessageQueue *, | MessageQueue *, |
void *); | void *); |
static void _forwardRequestCallback(AsyncOpNode *, |
|
|
static void _forwardRequestCallback( |
|
AsyncOpNode*, |
MessageQueue *, | MessageQueue *, |
void *); | void *); |
| |
|
|
| |
void handleEnumerateInstancesResponseAggregation(OperationAggregate* poA); | void handleEnumerateInstancesResponseAggregation(OperationAggregate* poA); |
| |
void handleEnumerateInstanceNamesResponseAggregation(OperationAggregate* poA); |
void handleEnumerateInstanceNamesResponseAggregation( |
|
OperationAggregate* poA); |
| |
void handleExecQueryResponseAggregation(OperationAggregate* poA); | void handleExecQueryResponseAggregation(OperationAggregate* poA); |
| |
|
|
const CIMName& assocClass, | const CIMName& assocClass, |
ProviderIdContainer **container); | ProviderIdContainer **container); |
| |
String _lookupMethodProvider(const CIMNamespaceName& nameSpace, |
String _lookupMethodProvider( |
const CIMName& className, const CIMName& methodName, |
const CIMNamespaceName& nameSpace, |
|
const CIMName& className, |
|
const CIMName& methodName, |
ProviderIdContainer **providerIdContainer); | ProviderIdContainer **providerIdContainer); |
| |
void _forwardRequestToService( | void _forwardRequestToService( |
|
|
| |
void _fixSetPropertyValueType(CIMSetPropertyRequestMessage* request); | void _fixSetPropertyValueType(CIMSetPropertyRequestMessage* request); |
| |
void _checkExistenceOfClass(const CIMNamespaceName& nameSpace, |
void _checkExistenceOfClass( |
|
const CIMNamespaceName& nameSpace, |
const CIMName& className, | const CIMName& className, |
CIMException& cimException); | CIMException& cimException); |
| |
CIMClass _getClass(const CIMNamespaceName& nameSpace, |
CIMClass _getClass( |
|
const CIMNamespaceName& nameSpace, |
const CIMName& className, | const CIMName& className, |
CIMException& cimException); | CIMException& cimException); |
| |
|
|
CIMRepository * _repository; | CIMRepository * _repository; |
| |
ProviderRegistrationManager* _providerRegistrationManager; | ProviderRegistrationManager* _providerRegistrationManager; |
| |
|
|
Boolean _enableAssociationTraversal; | Boolean _enableAssociationTraversal; |
Boolean _enableIndicationService; | Boolean _enableIndicationService; |
Uint32 _maximumEnumerateBreadth; | Uint32 _maximumEnumerateBreadth; |
|
|
void applyQueryToEnumeration(CIMResponseMessage* msg, | void applyQueryToEnumeration(CIMResponseMessage* msg, |
QueryExpressionRep* query); | QueryExpressionRep* query); |
*/ | */ |
|
|
private: | private: |
static void _handle_enqueue_callback(AsyncOpNode *, MessageQueue *, void *); | static void _handle_enqueue_callback(AsyncOpNode *, MessageQueue *, void *); |
| |