version 1.2, 2004/07/28 01:24:50
|
version 1.6, 2004/10/25 18:26:00
|
|
|
//%2003//////////////////////////////////////////////////////////////////////// |
//%2004//////////////////////////////////////////////////////////////////////// |
// | // |
// 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. |
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; | // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
// IBM Corp.; EMC Corporation, The Open Group. | // IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; 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 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: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) | // Modified By: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
// Dave Rosckes (rosckes@us.ibm.com) | // Dave Rosckes (rosckes@us.ibm.com) |
|
// Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2 |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
// |
|
// ValueResponseHandler (used internally to implement property operations) |
|
// |
|
class PEGASUS_PPM_LINKAGE ValueResponseHandler : virtual public ResponseHandler |
|
{ |
|
public: |
|
virtual void deliver(const CIMValue & value) = 0; |
|
|
|
virtual void deliver(const Array<CIMValue> & values) = 0; |
|
}; |
|
|
|
|
|
// |
|
// SimpleResponseHandler |
|
// |
class PEGASUS_PPM_LINKAGE SimpleResponseHandler : virtual public ResponseHandler | class PEGASUS_PPM_LINKAGE SimpleResponseHandler : virtual public ResponseHandler |
{ | { |
public: | public: |
|
|
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, | Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
"SimpleResponseHandler: complete()"); | "SimpleResponseHandler: complete()"); |
| |
// do nothing |
send(true); |
} | } |
| |
|
// return the number of objects in this handler |
|
virtual Uint32 size() const { return 0; } |
|
|
|
// clear any objects in this handler |
|
virtual void clear() {} |
|
|
// l10n | // l10n |
ContentLanguages getLanguages(void) |
ContentLanguages getLanguages(void); |
{ |
|
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
|
"SimpleResponseHandler: getLanguages()"); |
|
| |
ContentLanguages langs; |
protected: |
try |
// send (deliver) asynchronously with restrictions |
{ |
virtual void send(Boolean isComplete); |
// Try to get the ContentLanguages out of the OperationContext |
|
// in the base ResponseHandler. |
|
OperationContext context = getContext(); |
|
ContentLanguageListContainer cntr = context.get |
|
(ContentLanguageListContainer::NAME); |
|
langs = cntr.getLanguages(); |
|
} |
|
catch (const Exception &) |
|
{ |
|
// The content language container must not exist. |
|
// Return the empty ContentLanguages. |
|
} |
|
| |
return langs; |
|
} |
|
}; | }; |
| |
class PEGASUS_PPM_LINKAGE SimpleInstanceResponseHandler : public SimpleResponseHandler, public InstanceResponseHandler | class PEGASUS_PPM_LINKAGE SimpleInstanceResponseHandler : public SimpleResponseHandler, public InstanceResponseHandler |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); } |
| |
virtual void deliver(const CIMInstance & instance) | virtual void deliver(const CIMInstance & instance) |
{ | { |
|
|
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
| |
_objects.append(instance); | _objects.append(instance); |
|
send(false); |
} | } |
| |
virtual void deliver(const Array<CIMInstance> & instances) | virtual void deliver(const Array<CIMInstance> & instances) |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); } |
| |
virtual void deliver(const CIMObjectPath & objectPath) | virtual void deliver(const CIMObjectPath & objectPath) |
{ | { |
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, | Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
_objects.append(objectPath); | _objects.append(objectPath); |
|
send(false); |
} | } |
| |
virtual void deliver(const Array<CIMObjectPath> & objectPaths) | virtual void deliver(const Array<CIMObjectPath> & objectPaths) |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
// NOTE: this is the total size (count) of ALL parameters! |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); _returnValue.clear(); } |
| |
virtual void deliverParamValue(const CIMParamValue & outParamValue) | virtual void deliverParamValue(const CIMParamValue & outParamValue) |
{ | { |
_objects.append(outParamValue); | _objects.append(outParamValue); |
|
// async delivers not yet supported for parameters |
|
//send(false); |
} | } |
| |
virtual void deliverParamValue(const Array<CIMParamValue> & outParamValues) | virtual void deliverParamValue(const Array<CIMParamValue> & outParamValues) |
|
|
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, | Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
_returnValue = returnValue; | _returnValue = returnValue; |
|
send(false); |
} | } |
| |
const Array<CIMParamValue> getParamValues(void) const | const Array<CIMParamValue> getParamValues(void) const |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); } |
| |
virtual void deliver(const CIMIndication & indication) | virtual void deliver(const CIMIndication & indication) |
{ | { |
|
|
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
| |
_objects.append(indication); | _objects.append(indication); |
|
send(false); |
} | } |
| |
virtual void deliver(const Array<CIMIndication> & indications) | virtual void deliver(const Array<CIMIndication> & indications) |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); } |
| |
virtual void deliver(const CIMObject & object) | virtual void deliver(const CIMObject & object) |
{ | { |
|
|
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
| |
_objects.append(object); | _objects.append(object); |
|
send(false); |
} | } |
| |
virtual void deliver(const Array<CIMObject> & objects) | virtual void deliver(const Array<CIMObject> & objects) |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); } |
| |
virtual void deliver(const CIMInstance & object) | virtual void deliver(const CIMInstance & object) |
{ | { |
|
|
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
| |
_objects.append(CIMObject(object)); | _objects.append(CIMObject(object)); |
|
// async delivers not yet supported |
|
//send(false); |
} | } |
| |
virtual void deliver(const Array<CIMInstance> & objects) | virtual void deliver(const Array<CIMInstance> & objects) |
|
|
{ | { |
} | } |
| |
void processing(void) { SimpleResponseHandler::processing(); } |
virtual void processing(void) { SimpleResponseHandler::processing(); } |
void complete(void) { SimpleResponseHandler::complete(); } |
virtual void complete(void) { SimpleResponseHandler::complete(); } |
|
virtual Uint32 size() const { return _objects.size(); } |
|
virtual void clear() { _objects.clear(); } |
| |
virtual void deliver(const CIMValue & value) | virtual void deliver(const CIMValue & value) |
{ | { |
|
|
"SimpleResponseHandler: deliver()"); | "SimpleResponseHandler: deliver()"); |
| |
_objects.append(value); | _objects.append(value); |
|
send(false); |
} | } |
| |
virtual void deliver(const Array<CIMValue> & values) | virtual void deliver(const Array<CIMValue> & values) |
|
|
| |
}; | }; |
| |
class PEGASUS_PPM_LINKAGE SimpleClassResponseHandler : public SimpleResponseHandler, public ClassResponseHandler |
|
{ |
|
public: |
|
SimpleClassResponseHandler(void) |
|
{ |
|
} |
|
|
|
void processing(void) { SimpleResponseHandler::processing(); } |
|
void complete(void) { SimpleResponseHandler::complete(); } |
|
|
|
virtual void deliver(const CIMClass & classObj) |
|
{ |
|
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
|
"SimpleResponseHandler: deliver()"); |
|
|
|
_objects.append(classObj); |
|
} |
|
|
|
virtual void deliver(const Array<CIMClass> & classObjs) |
|
{ |
|
// call deliver for each object in the array |
|
for(Uint32 i = 0, n = classObjs.size(); i < n; i++) |
|
{ |
|
deliver(classObjs[i]); |
|
} |
|
} |
|
|
|
const Array<CIMClass> getObjects(void) const |
|
{ |
|
return _objects; |
|
} |
|
|
|
private: |
|
Array<CIMClass> _objects; |
|
|
|
}; |
|
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif | #endif |