version 1.11.8.2, 2006/02/10 16:12:57
|
version 1.14, 2006/02/24 19:16:28
|
|
|
// | // |
// Modified By: | // Modified By: |
// Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2 | // Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2 |
|
// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
| |
#include <Pegasus/Common/Logger.h> | #include <Pegasus/Common/Logger.h> |
| |
#include <Pegasus/ProviderManager2/ProviderManagerService.h> |
|
|
|
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
// | // |
|
|
| |
OperationResponseHandler::OperationResponseHandler( | OperationResponseHandler::OperationResponseHandler( |
CIMRequestMessage *request, | CIMRequestMessage *request, |
CIMResponseMessage *response) |
CIMResponseMessage *response, |
|
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: _request(request), | : _request(request), |
_response(response), | _response(response), |
|
_responseChunkCallback(responseChunkCallback), |
_responseObjectTotal(0), | _responseObjectTotal(0), |
_responseMessageTotal(0), | _responseMessageTotal(0), |
_responseObjectThreshold(0) | _responseObjectThreshold(0) |
|
|
#define PEGASUS_RESPONSE_OBJECT_COUNT_THRESHOLD ~0 | #define PEGASUS_RESPONSE_OBJECT_COUNT_THRESHOLD ~0 |
#endif | #endif |
| |
if (!request || (request->requestIsOOP == true)) |
if (!request) |
{ | { |
_responseObjectThreshold = ~0; | _responseObjectThreshold = ~0; |
} | } |
|
|
| |
if (isComplete == false) | if (isComplete == false) |
{ | { |
ProviderManagerService::handleCimResponse(*_request, *_response); |
_responseChunkCallback(_request, _response); |
} | } |
| |
// put caller's allocated response back in place. Note that _response | // put caller's allocated response back in place. Note that _response |
|
|
| |
GetInstanceResponseHandler::GetInstanceResponseHandler( | GetInstanceResponseHandler::GetInstanceResponseHandler( |
CIMGetInstanceRequestMessage * request, | CIMGetInstanceRequestMessage * request, |
CIMGetInstanceResponseMessage * response) |
CIMGetInstanceResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
#ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION | #ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION |
// Attempt to get the cached class definition used to validate results of this | // Attempt to get the cached class definition used to validate results of this |
|
|
// operation. | // operation. |
CIMClass cimClass; | CIMClass cimClass; |
| |
NormalizerContext * context = 0; |
|
|
|
try | try |
{ | { |
CachedClassDefinitionContainer container = | CachedClassDefinitionContainer container = |
request->operationContext.get(CachedClassDefinitionContainer::NAME); | request->operationContext.get(CachedClassDefinitionContainer::NAME); |
| |
cimClass = container.getClass(); | cimClass = container.getClass(); |
#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
NormalizerContextContainer contextContainer = |
|
request->operationContext.get(NormalizerContextContainer::NAME); |
|
context = contextContainer.getContext(); |
|
#endif //PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
} | } |
catch(Exception &) | catch(Exception &) |
{ | { |
|
|
ObjectNormalizer( | ObjectNormalizer( |
cimClass, | cimClass, |
request->includeQualifiers, | request->includeQualifiers, |
request->includeClassOrigin, |
request->includeClassOrigin); |
request->nameSpace, |
|
context); |
|
#endif | #endif |
} | } |
| |
|
|
| |
EnumerateInstancesResponseHandler::EnumerateInstancesResponseHandler( | EnumerateInstancesResponseHandler::EnumerateInstancesResponseHandler( |
CIMEnumerateInstancesRequestMessage * request, | CIMEnumerateInstancesRequestMessage * request, |
CIMEnumerateInstancesResponseMessage * response) |
CIMEnumerateInstancesResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
#ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION | #ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION |
// Attempt to get the cached class definition used to validate results of this | // Attempt to get the cached class definition used to validate results of this |
// operation. If it does not exist, then this feature is disabled for this | // operation. If it does not exist, then this feature is disabled for this |
// operation. | // operation. |
CIMClass cimClass; | CIMClass cimClass; |
NormalizerContext * context = 0; |
|
| |
try | try |
{ | { |
|
|
request->operationContext.get(CachedClassDefinitionContainer::NAME); | request->operationContext.get(CachedClassDefinitionContainer::NAME); |
| |
cimClass = container.getClass(); | cimClass = container.getClass(); |
#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
NormalizerContextContainer contextContainer = |
|
request->operationContext.get(NormalizerContextContainer::NAME); |
|
context = contextContainer.getContext(); |
|
#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
} | } |
catch(Exception &) | catch(Exception &) |
{ | { |
|
|
ObjectNormalizer( | ObjectNormalizer( |
cimClass, | cimClass, |
request->includeQualifiers, | request->includeQualifiers, |
request->includeClassOrigin, |
request->includeClassOrigin); |
request->nameSpace, |
|
context); |
|
#endif | #endif |
} | } |
| |
|
|
| |
EnumerateInstanceNamesResponseHandler::EnumerateInstanceNamesResponseHandler( | EnumerateInstanceNamesResponseHandler::EnumerateInstanceNamesResponseHandler( |
CIMEnumerateInstanceNamesRequestMessage * request, | CIMEnumerateInstanceNamesRequestMessage * request, |
CIMEnumerateInstanceNamesResponseMessage * response) |
CIMEnumerateInstanceNamesResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
#ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION | #ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION |
// Attempt to get the cached class definition used to validate results of this | // Attempt to get the cached class definition used to validate results of this |
// operation. If it does not exist, then this feature is disabled for this | // operation. If it does not exist, then this feature is disabled for this |
// operation. | // operation. |
CIMClass cimClass; | CIMClass cimClass; |
NormalizerContext * context = 0; |
|
| |
try | try |
{ | { |
|
|
request->operationContext.get(CachedClassDefinitionContainer::NAME); | request->operationContext.get(CachedClassDefinitionContainer::NAME); |
| |
cimClass = container.getClass(); | cimClass = container.getClass(); |
#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
NormalizerContextContainer contextContainer = |
|
request->operationContext.get(NormalizerContextContainer::NAME); |
|
context = contextContainer.getContext(); |
|
#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
} | } |
catch(Exception &) | catch(Exception &) |
{ | { |
|
|
ObjectNormalizer( | ObjectNormalizer( |
cimClass, | cimClass, |
false, | false, |
false, |
false); |
request->nameSpace, |
|
context); |
|
#endif | #endif |
} | } |
| |
|
|
| |
CreateInstanceResponseHandler::CreateInstanceResponseHandler( | CreateInstanceResponseHandler::CreateInstanceResponseHandler( |
CIMCreateInstanceRequestMessage * request, | CIMCreateInstanceRequestMessage * request, |
CIMCreateInstanceResponseMessage * response) |
CIMCreateInstanceResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
ModifyInstanceResponseHandler::ModifyInstanceResponseHandler( | ModifyInstanceResponseHandler::ModifyInstanceResponseHandler( |
CIMModifyInstanceRequestMessage * request, | CIMModifyInstanceRequestMessage * request, |
CIMModifyInstanceResponseMessage * response) |
CIMModifyInstanceResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
DeleteInstanceResponseHandler::DeleteInstanceResponseHandler( | DeleteInstanceResponseHandler::DeleteInstanceResponseHandler( |
CIMDeleteInstanceRequestMessage * request, | CIMDeleteInstanceRequestMessage * request, |
CIMDeleteInstanceResponseMessage * response) |
CIMDeleteInstanceResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
GetPropertyResponseHandler::GetPropertyResponseHandler( | GetPropertyResponseHandler::GetPropertyResponseHandler( |
CIMGetPropertyRequestMessage * request, | CIMGetPropertyRequestMessage * request, |
CIMGetPropertyResponseMessage * response) |
CIMGetPropertyResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
SetPropertyResponseHandler::SetPropertyResponseHandler( | SetPropertyResponseHandler::SetPropertyResponseHandler( |
CIMSetPropertyRequestMessage * request, | CIMSetPropertyRequestMessage * request, |
CIMSetPropertyResponseMessage * response) |
CIMSetPropertyResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
ExecQueryResponseHandler::ExecQueryResponseHandler( | ExecQueryResponseHandler::ExecQueryResponseHandler( |
CIMExecQueryRequestMessage * request, | CIMExecQueryRequestMessage * request, |
CIMExecQueryResponseMessage * response) |
CIMExecQueryResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
AssociatorsResponseHandler::AssociatorsResponseHandler( | AssociatorsResponseHandler::AssociatorsResponseHandler( |
CIMAssociatorsRequestMessage * request, | CIMAssociatorsRequestMessage * request, |
CIMAssociatorsResponseMessage * response) |
CIMAssociatorsResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
AssociatorNamesResponseHandler::AssociatorNamesResponseHandler( | AssociatorNamesResponseHandler::AssociatorNamesResponseHandler( |
CIMAssociatorNamesRequestMessage * request, | CIMAssociatorNamesRequestMessage * request, |
CIMAssociatorNamesResponseMessage * response) |
CIMAssociatorNamesResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
ReferencesResponseHandler::ReferencesResponseHandler( | ReferencesResponseHandler::ReferencesResponseHandler( |
CIMReferencesRequestMessage * request, | CIMReferencesRequestMessage * request, |
CIMReferencesResponseMessage * response) |
CIMReferencesResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
ReferenceNamesResponseHandler::ReferenceNamesResponseHandler( | ReferenceNamesResponseHandler::ReferenceNamesResponseHandler( |
CIMReferenceNamesRequestMessage * request, | CIMReferenceNamesRequestMessage * request, |
CIMReferenceNamesResponseMessage * response) |
CIMReferenceNamesResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
| |
InvokeMethodResponseHandler::InvokeMethodResponseHandler( | InvokeMethodResponseHandler::InvokeMethodResponseHandler( |
CIMInvokeMethodRequestMessage * request, | CIMInvokeMethodRequestMessage * request, |
CIMInvokeMethodResponseMessage * response) |
CIMInvokeMethodResponseMessage* response, |
: OperationResponseHandler(request, response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback) |
{ | { |
} | } |
| |
|
|
// EnableIndicationsResponseHandler | // EnableIndicationsResponseHandler |
// | // |
| |
typedef void (*PEGASUS_INDICATION_CALLBACK)(CIMProcessIndicationRequestMessage*); |
|
|
|
EnableIndicationsResponseHandler::EnableIndicationsResponseHandler( | EnableIndicationsResponseHandler::EnableIndicationsResponseHandler( |
CIMRequestMessage * request, | CIMRequestMessage * request, |
CIMResponseMessage * response, | CIMResponseMessage * response, |
CIMInstance & provider, | CIMInstance & provider, |
PEGASUS_INDICATION_CALLBACK indicationCallback) |
PEGASUS_INDICATION_CALLBACK_T indicationCallback, |
: OperationResponseHandler(request, response), |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
|
: OperationResponseHandler(request, response, responseChunkCallback), |
_indicationCallback(indicationCallback) | _indicationCallback(indicationCallback) |
{ | { |
_provider = provider; | _provider = provider; |