version 1.25.12.1, 2008/09/19 06:17:49
|
version 1.33.2.4, 2009/10/30 13:10:39
|
|
|
//%2006//////////////////////////////////////////////////////////////////////// |
//%LICENSE//////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Licensed to The Open Group (TOG) under one or more contributor license |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with |
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; |
// this work for additional information regarding copyright ownership. |
// IBM Corp.; EMC Corporation, The Open Group. |
// Each contributor licenses this file to you under the OpenPegasus Open |
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
// Source License; you may not use this file except in compliance with the |
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
// License. |
// Copyright (c) 2005 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 |
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
// copy of this software and associated documentation files (the "Software"), |
// EMC Corporation; Symantec Corporation; The Open Group. |
// to deal in the Software without restriction, including without limitation |
// |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
// Permission is hereby granted, free of charge, to any person obtaining a copy |
// and/or sell copies of the Software, and to permit persons to whom the |
// of this software and associated documentation files (the "Software"), to |
// Software is furnished to do so, subject to the following conditions: |
// deal in the Software without restriction, including without limitation the |
// |
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
// The above copyright notice and this permission notice shall be included |
// sell copies of the Software, and to permit persons to whom the Software is |
// in all copies or substantial portions of the Software. |
// furnished to do so, subject to the following conditions: |
// |
// |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
// | // |
//============================================================================== |
////////////////////////////////////////////////////////////////////////// |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
if (request->operationContext.contains( | if (request->operationContext.contains( |
CachedClassDefinitionContainer::NAME)) | CachedClassDefinitionContainer::NAME)) |
{ | { |
CIMClass cimClass; |
|
CachedClassDefinitionContainer container = | CachedClassDefinitionContainer container = |
request->operationContext.get( | request->operationContext.get( |
CachedClassDefinitionContainer::NAME); | CachedClassDefinitionContainer::NAME); |
cimClass = container.getClass(); |
CIMClass cimClass = container.getClass().clone(); |
|
container = CachedClassDefinitionContainer(cimClass); |
SharedPtr<NormalizerContext> tmpContext(new CIMOMHandleContext()); | SharedPtr<NormalizerContext> tmpContext(new CIMOMHandleContext()); |
ObjectNormalizer tmpNormalizer( | ObjectNormalizer tmpNormalizer( |
cimClass, | cimClass, |
|
|
_normalizer.processInstance(localInstance)); | _normalizer.processInstance(localInstance)); |
} | } |
| |
|
void GetInstanceResponseHandler::deliver(const SCMOInstance& cimInstance) |
|
{ |
|
if (cimInstance.isUninitialized()) |
|
{ |
|
MessageLoaderParms message( |
|
"Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", |
|
"The object is not initialized."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
|
|
if (SimpleInstanceResponseHandler::size() != 0) |
|
{ |
|
MessageLoaderParms message( |
|
"Server.OperationResponseHandler.TOO_MANY_OBJECTS_DELIVERED", |
|
"Too many objects delivered."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
|
|
SimpleInstanceResponseHandler::deliver(cimInstance); |
|
} |
|
|
void GetInstanceResponseHandler::complete() | void GetInstanceResponseHandler::complete() |
{ | { |
if (SimpleInstanceResponseHandler::size() == 0) | if (SimpleInstanceResponseHandler::size() == 0) |
|
|
{ | { |
CIMGetInstanceResponseMessage& msg = | CIMGetInstanceResponseMessage& msg = |
*static_cast<CIMGetInstanceResponseMessage*>(getResponse()); | *static_cast<CIMGetInstanceResponseMessage*>(getResponse()); |
|
Array<CIMInstance> cimObjs= getObjects(); |
msg.cimInstance = getObjects()[0]; |
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setInstance(cimObjs[0]); |
|
} |
|
else |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
} | } |
| |
|
|
_normalizer.processInstance(cimInstance)); | _normalizer.processInstance(cimInstance)); |
} | } |
| |
|
void EnumerateInstancesResponseHandler::deliver( |
|
const SCMOInstance& scmoInstance) |
|
{ |
|
if (scmoInstance.isUninitialized()) |
|
{ |
|
MessageLoaderParms message( |
|
"Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", |
|
"The object is not initialized."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
SimpleInstanceResponseHandler::deliver(scmoInstance); |
|
} |
|
|
String EnumerateInstancesResponseHandler::getClass() const | String EnumerateInstancesResponseHandler::getClass() const |
{ | { |
return String("EnumerateInstancesResponseHandler"); | return String("EnumerateInstancesResponseHandler"); |
|
|
CIMEnumerateInstancesResponseMessage& msg = | CIMEnumerateInstancesResponseMessage& msg = |
*static_cast<CIMEnumerateInstancesResponseMessage*>(getResponse()); | *static_cast<CIMEnumerateInstancesResponseMessage*>(getResponse()); |
| |
msg.cimNamedInstances = getObjects(); |
Array<CIMInstance> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setInstances(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
// | // |
|
|
_normalizer.processInstanceObjectPath(cimObjectPath)); | _normalizer.processInstanceObjectPath(cimObjectPath)); |
} | } |
| |
|
void EnumerateInstanceNamesResponseHandler::deliver( |
|
const SCMOInstance& scmoObjectPath) |
|
{ |
|
if (scmoObjectPath.getClassName()==NULL) |
|
{ |
|
MessageLoaderParms message( |
|
"Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", |
|
"The object is not initialized."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
|
|
SimpleObjectPathResponseHandler::deliver(scmoObjectPath); |
|
} |
|
|
String EnumerateInstanceNamesResponseHandler::getClass() const | String EnumerateInstanceNamesResponseHandler::getClass() const |
{ | { |
return String("EnumerateInstanceNamesResponseHandler"); | return String("EnumerateInstanceNamesResponseHandler"); |
|
|
CIMEnumerateInstanceNamesResponseMessage& msg = | CIMEnumerateInstanceNamesResponseMessage& msg = |
*static_cast<CIMEnumerateInstanceNamesResponseMessage*>(getResponse()); | *static_cast<CIMEnumerateInstanceNamesResponseMessage*>(getResponse()); |
| |
msg.instanceNames = getObjects(); |
Array<CIMObjectPath> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setInstanceNames(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
// | // |
|
|
CIMCreateInstanceResponseMessage& msg = | CIMCreateInstanceResponseMessage& msg = |
*static_cast<CIMCreateInstanceResponseMessage*>(getResponse()); | *static_cast<CIMCreateInstanceResponseMessage*>(getResponse()); |
| |
msg.instanceName = getObjects()[0]; |
// TBD: Extend CIMCreateInstanceResponseMessage with ResponseData. |
|
Array<CIMObjectPath> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.instanceName = cimObjs[0]; |
|
} |
|
else |
|
{ |
|
fprintf(stderr,"TBD: Scaffold code for " |
|
"CreateInstanceResponseHandler::transfer()\n"); |
|
scmoObjs[0].getCIMObjectPath(msg.instanceName); |
|
} |
} | } |
} | } |
| |
|
|
SimpleInstance2ObjectResponseHandler::deliver(cimInstance); | SimpleInstance2ObjectResponseHandler::deliver(cimInstance); |
} | } |
| |
|
void ExecQueryResponseHandler::deliver(const SCMOInstance& scmoInstance) |
|
{ |
|
if (scmoInstance.isUninitialized()) |
|
{ |
|
MessageLoaderParms message( |
|
"Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", |
|
"The object is not initialized."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
|
|
SimpleInstance2ObjectResponseHandler::deliver(scmoInstance); |
|
} |
|
|
String ExecQueryResponseHandler::getClass() const | String ExecQueryResponseHandler::getClass() const |
{ | { |
return String("ExecQueryResponseHandler"); | return String("ExecQueryResponseHandler"); |
|
|
CIMExecQueryResponseMessage& msg = | CIMExecQueryResponseMessage& msg = |
*static_cast<CIMExecQueryResponseMessage*>(getResponse()); | *static_cast<CIMExecQueryResponseMessage*>(getResponse()); |
| |
msg.cimObjects = getObjects(); |
Array<CIMObject> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setObjects(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
Boolean ExecQueryResponseHandler::isAsync() const | Boolean ExecQueryResponseHandler::isAsync() const |
|
|
SimpleObjectResponseHandler::deliver(cimObject); | SimpleObjectResponseHandler::deliver(cimObject); |
} | } |
| |
|
void AssociatorsResponseHandler::deliver(const SCMOInstance& scmoObject) |
|
{ |
|
if (scmoObject.isUninitialized()) |
|
{ |
|
MessageLoaderParms message( |
|
"Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", |
|
"The object is not initialized."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
SimpleObjectResponseHandler::deliver(scmoObject); |
|
} |
|
|
String AssociatorsResponseHandler::getClass() const | String AssociatorsResponseHandler::getClass() const |
{ | { |
return String("AssociatorsResponseHandler"); | return String("AssociatorsResponseHandler"); |
|
|
CIMAssociatorsResponseMessage& msg = | CIMAssociatorsResponseMessage& msg = |
*static_cast<CIMAssociatorsResponseMessage*>(getResponse()); | *static_cast<CIMAssociatorsResponseMessage*>(getResponse()); |
| |
msg.cimObjects = getObjects(); |
Array<CIMObject> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setObjects(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
// | // |
|
|
SimpleObjectPathResponseHandler::deliver(cimObjectPath); | SimpleObjectPathResponseHandler::deliver(cimObjectPath); |
} | } |
| |
|
void AssociatorNamesResponseHandler::deliver(const SCMOInstance& scmoObjectPath) |
|
{ |
|
SimpleObjectPathResponseHandler::deliver(scmoObjectPath); |
|
} |
|
|
String AssociatorNamesResponseHandler::getClass() const | String AssociatorNamesResponseHandler::getClass() const |
{ | { |
return String("AssociatorNamesResponseHandler"); | return String("AssociatorNamesResponseHandler"); |
|
|
CIMAssociatorNamesResponseMessage& msg = | CIMAssociatorNamesResponseMessage& msg = |
*static_cast<CIMAssociatorNamesResponseMessage*>(getResponse()); | *static_cast<CIMAssociatorNamesResponseMessage*>(getResponse()); |
| |
msg.objectNames = getObjects(); |
Array<CIMObjectPath> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setInstanceNames(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
// | // |
|
|
SimpleObjectResponseHandler::deliver(cimObject); | SimpleObjectResponseHandler::deliver(cimObject); |
} | } |
| |
|
void ReferencesResponseHandler::deliver(const SCMOInstance& scmoObject) |
|
{ |
|
if (scmoObject.isUninitialized()) |
|
{ |
|
MessageLoaderParms message( |
|
"Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", |
|
"The object is not initialized."); |
|
|
|
throw CIMException(CIM_ERR_FAILED, message); |
|
} |
|
SimpleObjectResponseHandler::deliver(scmoObject); |
|
} |
|
|
String ReferencesResponseHandler::getClass() const | String ReferencesResponseHandler::getClass() const |
{ | { |
return String("ReferencesResponseHandler"); | return String("ReferencesResponseHandler"); |
|
|
CIMReferencesResponseMessage& msg = | CIMReferencesResponseMessage& msg = |
*static_cast<CIMReferencesResponseMessage*>(getResponse()); | *static_cast<CIMReferencesResponseMessage*>(getResponse()); |
| |
msg.cimObjects = getObjects(); |
Array<CIMObject> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setObjects(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
// | // |
|
|
SimpleObjectPathResponseHandler::deliver(cimObjectPath); | SimpleObjectPathResponseHandler::deliver(cimObjectPath); |
} | } |
| |
|
void ReferenceNamesResponseHandler::deliver(const SCMOInstance& scmoObjectPath) |
|
{ |
|
SimpleObjectPathResponseHandler::deliver(scmoObjectPath); |
|
} |
|
|
String ReferenceNamesResponseHandler::getClass() const | String ReferenceNamesResponseHandler::getClass() const |
{ | { |
return String("ReferenceNamesResponseHandler"); | return String("ReferenceNamesResponseHandler"); |
|
|
CIMReferenceNamesResponseMessage& msg = | CIMReferenceNamesResponseMessage& msg = |
*static_cast<CIMReferenceNamesResponseMessage*>(getResponse()); | *static_cast<CIMReferenceNamesResponseMessage*>(getResponse()); |
| |
msg.objectNames = getObjects(); |
Array<CIMObjectPath> cimObjs= getObjects(); |
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
|
if (cimObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setInstanceNames(cimObjs); |
|
} |
|
if (scmoObjs.size() != 0) |
|
{ |
|
msg.getResponseData().setSCMO(scmoObjs); |
|
} |
} | } |
| |
// | // |