version 1.28.8.2, 2006/03/07 18:45:56
|
version 1.36, 2008/12/02 09:01:48
|
|
|
//%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. |
|
// 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 |
// of this software and associated documentation files (the "Software"), to |
// copy of this software and associated documentation files (the "Software"), |
// deal in the Software without restriction, including without limitation the |
// to deal in the Software without restriction, including without limitation |
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
// sell copies of the Software, and to permit persons to whom the Software is |
// and/or sell copies of the Software, and to permit persons to whom the |
// furnished to do so, subject to the following conditions: |
// Software is furnished to do so, subject to the following conditions: |
// | // |
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
// The above copyright notice and this permission notice shall be included |
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
// in all copies or substantial portions of the Software. |
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
|
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
|
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
|
// 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. |
|
// | // |
//============================================================================== |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 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. |
// | // |
// Author: Chip Vincent (cvincent@us.ibm.com) |
////////////////////////////////////////////////////////////////////////// |
// |
|
// Modified By: |
|
// Carol Ann Krug Graves, Hewlett-Packard Company (carolann_graves@hp.com) |
|
// Dave Rosckes (rosckes@us.ibm.com) |
|
// Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com) |
|
// Adrian Schuur (schuur@de.ibm.com) |
|
// Seema Gupta (gseema@in.ibm.com) for PEP135 |
|
// Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2 |
|
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
CIMResponseMessage* response, | CIMResponseMessage* response, |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); | PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); |
| |
virtual ~OperationResponseHandler(void); |
virtual ~OperationResponseHandler(); |
| |
CIMRequestMessage * getRequest(void) const; |
CIMRequestMessage* getRequest() const; |
| |
CIMResponseMessage * getResponse(void) const; |
CIMResponseMessage* getResponse() const; |
| |
virtual void setStatus( | virtual void setStatus( |
const Uint32 code, | const Uint32 code, |
|
|
const ContentLanguageList & langs, | const ContentLanguageList & langs, |
const String & message = String::EMPTY); | const String & message = String::EMPTY); |
| |
|
virtual void setCIMException(const CIMException& cimException); |
|
|
protected: | protected: |
// the default for all derived handlers. Some handlers may not apply | // the default for all derived handlers. Some handlers may not apply |
// async behavior because their callers cannot handle partial responses. | // async behavior because their callers cannot handle partial responses. |
virtual Boolean isAsync(void) const; |
virtual Boolean isAsync() const; |
| |
// send (deliver) asynchronously | // send (deliver) asynchronously |
virtual void send(Boolean isComplete); | virtual void send(Boolean isComplete); |
| |
// transfer any objects from handler to response. this does not clear() | // transfer any objects from handler to response. this does not clear() |
virtual void transfer(void); |
virtual void transfer(); |
| |
// validate whatever is necessary before the transfer | // validate whatever is necessary before the transfer |
virtual void validate(void); |
virtual void validate(); |
| |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
Uint32 getResponseObjectTotal(void) const; |
Uint32 getResponseObjectTotal() const; |
| |
// there can be many objects per message (or none at all - i.e complete()) | // there can be many objects per message (or none at all - i.e complete()) |
Uint32 getResponseMessageTotal(void) const; |
Uint32 getResponseMessageTotal() const; |
| |
Uint32 getResponseObjectThreshold(void) const; |
Uint32 getResponseObjectThreshold() const; |
| |
CIMRequestMessage * _request; | CIMRequestMessage * _request; |
CIMResponseMessage * _response; | CIMResponseMessage * _response; |
|
|
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE GetInstanceResponseHandler : public OperationResponseHandler, public SimpleInstanceResponseHandler |
class PEGASUS_PPM_LINKAGE GetInstanceResponseHandler : |
|
public OperationResponseHandler, public SimpleInstanceResponseHandler |
{ | { |
public: | public: |
GetInstanceResponseHandler( | GetInstanceResponseHandler( |
|
|
SimpleInstanceResponseHandler::deliver(cimInstanceArray); | SimpleInstanceResponseHandler::deliver(cimInstanceArray); |
} | } |
| |
virtual void complete(void); |
virtual void complete(); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
virtual void validate(void); |
virtual void validate(); |
| |
private: | private: |
ObjectNormalizer _normalizer; | ObjectNormalizer _normalizer; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE EnumerateInstancesResponseHandler : public OperationResponseHandler, public SimpleInstanceResponseHandler |
class PEGASUS_PPM_LINKAGE EnumerateInstancesResponseHandler : |
|
public OperationResponseHandler, public SimpleInstanceResponseHandler |
{ | { |
public: | public: |
EnumerateInstancesResponseHandler( | EnumerateInstancesResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
private: | private: |
ObjectNormalizer _normalizer; | ObjectNormalizer _normalizer; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE EnumerateInstanceNamesResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler |
class PEGASUS_PPM_LINKAGE EnumerateInstanceNamesResponseHandler : |
|
public OperationResponseHandler, public SimpleObjectPathResponseHandler |
{ | { |
public: | public: |
EnumerateInstanceNamesResponseHandler( | EnumerateInstanceNamesResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
private: | private: |
ObjectNormalizer _normalizer; | ObjectNormalizer _normalizer; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE CreateInstanceResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler |
class PEGASUS_PPM_LINKAGE CreateInstanceResponseHandler : |
|
public OperationResponseHandler, public SimpleObjectPathResponseHandler |
{ | { |
public: | public: |
CreateInstanceResponseHandler( | CreateInstanceResponseHandler( |
|
|
SimpleObjectPathResponseHandler::deliver(cimObjectPathArray); | SimpleObjectPathResponseHandler::deliver(cimObjectPathArray); |
} | } |
| |
virtual void complete(void); |
virtual void complete(); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE ModifyInstanceResponseHandler : public OperationResponseHandler, public SimpleResponseHandler |
class PEGASUS_PPM_LINKAGE ModifyInstanceResponseHandler : |
|
public OperationResponseHandler, public SimpleResponseHandler |
{ | { |
public: | public: |
ModifyInstanceResponseHandler( | ModifyInstanceResponseHandler( |
|
|
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); | PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE DeleteInstanceResponseHandler : public OperationResponseHandler, public SimpleResponseHandler |
class PEGASUS_PPM_LINKAGE DeleteInstanceResponseHandler : |
|
public OperationResponseHandler, public SimpleResponseHandler |
{ | { |
public: | public: |
DeleteInstanceResponseHandler( | DeleteInstanceResponseHandler( |
|
|
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); | PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE GetPropertyResponseHandler : public OperationResponseHandler, public SimpleValueResponseHandler |
class PEGASUS_PPM_LINKAGE GetPropertyResponseHandler : |
|
public OperationResponseHandler, public SimpleValueResponseHandler |
{ | { |
public: | public: |
GetPropertyResponseHandler( | GetPropertyResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
virtual void validate(void); |
virtual void validate(); |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE SetPropertyResponseHandler : public OperationResponseHandler, public SimpleResponseHandler |
class PEGASUS_PPM_LINKAGE SetPropertyResponseHandler : |
|
public OperationResponseHandler, public SimpleResponseHandler |
{ | { |
public: | public: |
SetPropertyResponseHandler( | SetPropertyResponseHandler( |
|
|
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); | PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE ExecQueryResponseHandler : public OperationResponseHandler, public SimpleInstance2ObjectResponseHandler |
class PEGASUS_PPM_LINKAGE ExecQueryResponseHandler : |
|
public OperationResponseHandler, |
|
public SimpleInstance2ObjectResponseHandler |
{ | { |
public: | public: |
ExecQueryResponseHandler( | ExecQueryResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
virtual Boolean isAsync(void) const; |
virtual Boolean isAsync() const; |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE AssociatorsResponseHandler : public OperationResponseHandler, public SimpleObjectResponseHandler |
class PEGASUS_PPM_LINKAGE AssociatorsResponseHandler : |
|
public OperationResponseHandler, public SimpleObjectResponseHandler |
{ | { |
public: | public: |
AssociatorsResponseHandler( | AssociatorsResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE AssociatorNamesResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler |
class PEGASUS_PPM_LINKAGE AssociatorNamesResponseHandler : |
|
public OperationResponseHandler, public SimpleObjectPathResponseHandler |
{ | { |
public: | public: |
AssociatorNamesResponseHandler( | AssociatorNamesResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE ReferencesResponseHandler : public OperationResponseHandler, public SimpleObjectResponseHandler |
class PEGASUS_PPM_LINKAGE ReferencesResponseHandler : |
|
public OperationResponseHandler, public SimpleObjectResponseHandler |
{ | { |
public: | public: |
ReferencesResponseHandler( | ReferencesResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE ReferenceNamesResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler |
class PEGASUS_PPM_LINKAGE ReferenceNamesResponseHandler : |
|
public OperationResponseHandler, public SimpleObjectPathResponseHandler |
{ | { |
public: | public: |
ReferenceNamesResponseHandler( | ReferenceNamesResponseHandler( |
|
|
} | } |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE InvokeMethodResponseHandler : public OperationResponseHandler, public SimpleMethodResultResponseHandler |
class PEGASUS_PPM_LINKAGE InvokeMethodResponseHandler : |
|
public OperationResponseHandler, public SimpleMethodResultResponseHandler |
{ | { |
public: | public: |
InvokeMethodResponseHandler( | InvokeMethodResponseHandler( |
|
|
virtual void deliver(const CIMValue & cimValue); | virtual void deliver(const CIMValue & cimValue); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual void transfer(void); |
virtual void transfer(); |
| |
}; | }; |
| |
typedef void (*PEGASUS_INDICATION_CALLBACK_T)( | typedef void (*PEGASUS_INDICATION_CALLBACK_T)( |
CIMProcessIndicationRequestMessage*); | CIMProcessIndicationRequestMessage*); |
| |
class PEGASUS_PPM_LINKAGE EnableIndicationsResponseHandler : public OperationResponseHandler, public SimpleIndicationResponseHandler |
class PEGASUS_PPM_LINKAGE EnableIndicationsResponseHandler : |
|
public OperationResponseHandler, public SimpleIndicationResponseHandler |
{ | { |
public: | public: |
EnableIndicationsResponseHandler( | EnableIndicationsResponseHandler( |
CIMRequestMessage* request, | CIMRequestMessage* request, |
CIMResponseMessage* response, | CIMResponseMessage* response, |
CIMInstance& provider, |
const CIMInstance& provider, |
PEGASUS_INDICATION_CALLBACK_T indicationCallback, | PEGASUS_INDICATION_CALLBACK_T indicationCallback, |
PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); | PEGASUS_RESPONSE_CHUNK_CALLBACK_T responseChunkCallback); |
| |
virtual void deliver(const CIMIndication & cimIndication); | virtual void deliver(const CIMIndication & cimIndication); |
| |
virtual void deliver(const OperationContext & context, const CIMIndication & cimIndication); |
virtual void deliver( |
|
const OperationContext& context, |
|
const CIMIndication& cimIndication); |
| |
virtual void deliver(const Array<CIMIndication> & cimIndications); | virtual void deliver(const Array<CIMIndication> & cimIndications); |
| |
virtual void deliver(const OperationContext & context, const Array<CIMIndication> & cimIndications); |
virtual void deliver( |
|
const OperationContext& context, |
|
const Array<CIMIndication>& cimIndications); |
| |
protected: | protected: |
virtual String getClass(void) const; |
virtual String getClass() const; |
| |
virtual Boolean isAsync(void) const; |
virtual Boolean isAsync() const; |
| |
private: | private: |
PEGASUS_INDICATION_CALLBACK_T _indicationCallback; | PEGASUS_INDICATION_CALLBACK_T _indicationCallback; |