version 1.11.8.7, 2006/04/11 15:50:46
|
version 1.11.10.1, 2006/01/18 17:38:03
|
|
|
//%2006//////////////////////////////////////////////////////////////////////// |
//%2005//////////////////////////////////////////////////////////////////////// |
// | // |
// 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. |
|
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. | // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; | // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
// EMC Corporation; VERITAS Software Corporation; The Open Group. | // EMC Corporation; VERITAS Software Corporation; The Open Group. |
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; Symantec 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 |
|
|
// | // |
// 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 "OperationResponseHandler.h" | #include "OperationResponseHandler.h" |
#include "CIMOMHandleContext.h" |
|
| |
#include <Pegasus/Common/Logger.h> | #include <Pegasus/Common/Logger.h> |
#include <Pegasus/Common/AutoPtr.h> |
|
#include <Pegasus/Provider/CIMOMHandle.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) |
if (!request || (request->requestIsOOP == true)) |
{ | { |
_responseObjectThreshold = ~0; | _responseObjectThreshold = ~0; |
} | } |
|
|
| |
if (isComplete == false) | if (isComplete == false) |
{ | { |
_responseChunkCallback(_request, _response); |
ProviderManagerService::handleCimResponse(*_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) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: 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 |
|
|
request->operationContext.get(CachedClassDefinitionContainer::NAME); | request->operationContext.get(CachedClassDefinitionContainer::NAME); |
| |
cimClass = container.getClass(); | cimClass = container.getClass(); |
|
|
} | } |
catch(Exception &) | catch(Exception &) |
{ | { |
|
|
// for this operation. | // for this operation. |
} | } |
| |
AutoPtr<NormalizerContext> tmpContext(new CIMOMHandleContext()); |
_normalizer = |
ObjectNormalizer tmpNormalizer( |
ObjectNormalizer( |
cimClass, | cimClass, |
request->includeQualifiers, | request->includeQualifiers, |
request->includeClassOrigin, |
request->includeClassOrigin); |
request->nameSpace, |
|
tmpContext); |
|
_normalizer = tmpNormalizer; |
|
#endif | #endif |
} | } |
| |
|
|
| |
EnumerateInstancesResponseHandler::EnumerateInstancesResponseHandler( | EnumerateInstancesResponseHandler::EnumerateInstancesResponseHandler( |
CIMEnumerateInstancesRequestMessage* request, | CIMEnumerateInstancesRequestMessage* request, |
CIMEnumerateInstancesResponseMessage* response, |
CIMEnumerateInstancesResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: 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 |
|
|
// for this operation. | // for this operation. |
} | } |
| |
AutoPtr<NormalizerContext> tmpContext(new CIMOMHandleContext()); |
_normalizer = |
ObjectNormalizer tmpNormalizer( |
ObjectNormalizer( |
cimClass, | cimClass, |
request->includeQualifiers, | request->includeQualifiers, |
request->includeClassOrigin, |
request->includeClassOrigin); |
request->nameSpace, |
|
tmpContext); |
|
_normalizer = tmpNormalizer; |
|
#endif | #endif |
} | } |
| |
|
|
| |
EnumerateInstanceNamesResponseHandler::EnumerateInstanceNamesResponseHandler( | EnumerateInstanceNamesResponseHandler::EnumerateInstanceNamesResponseHandler( |
CIMEnumerateInstanceNamesRequestMessage* request, | CIMEnumerateInstanceNamesRequestMessage* request, |
CIMEnumerateInstanceNamesResponseMessage* response, |
CIMEnumerateInstanceNamesResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: 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 |
|
|
// for this operation. | // for this operation. |
} | } |
| |
AutoPtr<NormalizerContext> tmpContext(new CIMOMHandleContext()); |
_normalizer = |
ObjectNormalizer tmpNormalizer( |
ObjectNormalizer( |
cimClass, | cimClass, |
false, | false, |
false, |
false); |
request->nameSpace, |
|
tmpContext); |
|
_normalizer = tmpNormalizer; |
|
#endif | #endif |
} | } |
| |
|
|
| |
CreateInstanceResponseHandler::CreateInstanceResponseHandler( | CreateInstanceResponseHandler::CreateInstanceResponseHandler( |
CIMCreateInstanceRequestMessage* request, | CIMCreateInstanceRequestMessage* request, |
CIMCreateInstanceResponseMessage* response, |
CIMCreateInstanceResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
ModifyInstanceResponseHandler::ModifyInstanceResponseHandler( | ModifyInstanceResponseHandler::ModifyInstanceResponseHandler( |
CIMModifyInstanceRequestMessage* request, | CIMModifyInstanceRequestMessage* request, |
CIMModifyInstanceResponseMessage* response, |
CIMModifyInstanceResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
DeleteInstanceResponseHandler::DeleteInstanceResponseHandler( | DeleteInstanceResponseHandler::DeleteInstanceResponseHandler( |
CIMDeleteInstanceRequestMessage* request, | CIMDeleteInstanceRequestMessage* request, |
CIMDeleteInstanceResponseMessage* response, |
CIMDeleteInstanceResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
GetPropertyResponseHandler::GetPropertyResponseHandler( | GetPropertyResponseHandler::GetPropertyResponseHandler( |
CIMGetPropertyRequestMessage* request, | CIMGetPropertyRequestMessage* request, |
CIMGetPropertyResponseMessage* response, |
CIMGetPropertyResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
SetPropertyResponseHandler::SetPropertyResponseHandler( | SetPropertyResponseHandler::SetPropertyResponseHandler( |
CIMSetPropertyRequestMessage* request, | CIMSetPropertyRequestMessage* request, |
CIMSetPropertyResponseMessage* response, |
CIMSetPropertyResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
ExecQueryResponseHandler::ExecQueryResponseHandler( | ExecQueryResponseHandler::ExecQueryResponseHandler( |
CIMExecQueryRequestMessage* request, | CIMExecQueryRequestMessage* request, |
CIMExecQueryResponseMessage* response, |
CIMExecQueryResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
AssociatorsResponseHandler::AssociatorsResponseHandler( | AssociatorsResponseHandler::AssociatorsResponseHandler( |
CIMAssociatorsRequestMessage* request, | CIMAssociatorsRequestMessage* request, |
CIMAssociatorsResponseMessage* response, |
CIMAssociatorsResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
AssociatorNamesResponseHandler::AssociatorNamesResponseHandler( | AssociatorNamesResponseHandler::AssociatorNamesResponseHandler( |
CIMAssociatorNamesRequestMessage* request, | CIMAssociatorNamesRequestMessage* request, |
CIMAssociatorNamesResponseMessage* response, |
CIMAssociatorNamesResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
ReferencesResponseHandler::ReferencesResponseHandler( | ReferencesResponseHandler::ReferencesResponseHandler( |
CIMReferencesRequestMessage* request, | CIMReferencesRequestMessage* request, |
CIMReferencesResponseMessage* response, |
CIMReferencesResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
ReferenceNamesResponseHandler::ReferenceNamesResponseHandler( | ReferenceNamesResponseHandler::ReferenceNamesResponseHandler( |
CIMReferenceNamesRequestMessage* request, | CIMReferenceNamesRequestMessage* request, |
CIMReferenceNamesResponseMessage* response, |
CIMReferenceNamesResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: OperationResponseHandler(request, response, responseChunkCallback) |
|
{ | { |
} | } |
| |
|
|
| |
InvokeMethodResponseHandler::InvokeMethodResponseHandler( | InvokeMethodResponseHandler::InvokeMethodResponseHandler( |
CIMInvokeMethodRequestMessage* request, | CIMInvokeMethodRequestMessage* request, |
CIMInvokeMethodResponseMessage* response, |
CIMInvokeMethodResponseMessage * response) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response) |
: 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_T indicationCallback, |
PEGASUS_INDICATION_CALLBACK indicationCallback) |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback) |
: OperationResponseHandler(request, response), |
: OperationResponseHandler(request, response, responseChunkCallback), |
|
_indicationCallback(indicationCallback) | _indicationCallback(indicationCallback) |
{ | { |
_provider = provider; | _provider = provider; |