version 1.2.2.2, 2009/09/03 13:54:05
|
version 1.2.2.4, 2009/10/01 09:33:36
|
|
|
} | } |
| |
_resolveCallback = _resolveBinaryInstance; | _resolveCallback = _resolveBinaryInstance; |
_binaryEncoding = true; |
_encoding = RESP_ENC_BINARY; |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return true; | return true; |
|
|
} | } |
| |
_resolveCallback = _resolveXMLInstance; | _resolveCallback = _resolveXMLInstance; |
|
_encoding = RESP_ENC_XML; |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return true; | return true; |
|
|
PEG_METHOD_ENTER(TRC_DISPATCHER, | PEG_METHOD_ENTER(TRC_DISPATCHER, |
"CIMInstanceResponseData::encodeBinaryResponse"); | "CIMInstanceResponseData::encodeBinaryResponse"); |
| |
if (_resolveCallback && _binaryEncoding) |
if (_resolveCallback && (_encoding == RESP_ENC_BINARY)) |
{ | { |
const Array<Uint8>& data = _binaryData; | const Array<Uint8>& data = _binaryData; |
out.putBytes(data.getData(), data.size()); | out.putBytes(data.getData(), data.size()); |
|
|
// This code corresponds to method _resolveXmlInstance, which is used | // This code corresponds to method _resolveXmlInstance, which is used |
// revert a CIM-XML instance representation back into a CIMInstance. | // revert a CIM-XML instance representation back into a CIMInstance. |
//------------------------------------------------------------------------------ | //------------------------------------------------------------------------------ |
void CIMInstanceResponseData::encodeXmlResponse(Buffer& out) const |
void CIMInstanceResponseData::encodeXmlResponse(Buffer& out) |
{ | { |
PEG_METHOD_ENTER(TRC_DISPATCHER, | PEG_METHOD_ENTER(TRC_DISPATCHER, |
"CIMInstanceResponseData::encodeXmlResponse"); | "CIMInstanceResponseData::encodeXmlResponse"); |
| |
if (_resolveCallback && !_binaryEncoding) |
if (_resolveCallback && (_encoding == RESP_ENC_XML)) |
{ | { |
out.append( (char*)_instanceData.getData(),_instanceData.size()-1); | out.append( (char*)_instanceData.getData(),_instanceData.size()-1); |
} | } |
else | else |
{ | { |
|
_resolve(); |
XmlWriter::appendInstanceElement(out, _cimInstance); | XmlWriter::appendInstanceElement(out, _cimInstance); |
//SCMOXmlWriter::appendValueSCMOInstanceElement(out, _cimInstance); | //SCMOXmlWriter::appendValueSCMOInstanceElement(out, _cimInstance); |
} | } |
|
|
} | } |
| |
//------------------------------------------------------------------------------ | //------------------------------------------------------------------------------ |
|
// Instantiates a CIMInstance from a SCMOInstance |
|
// Returns true on success. |
|
//------------------------------------------------------------------------------ |
|
Boolean CIMInstanceResponseData::_resolveSCMOInstance( |
|
CIMInstanceResponseData* data, |
|
CIMInstance& instance) |
|
{ |
|
PEG_METHOD_ENTER(TRC_DISPATCHER, |
|
"CIMInstanceResponseData::_resolveSCMOInstance"); |
|
|
|
//--rk-->TBD: Do the actual coding here |
|
|
|
fprintf(stderr,"CIMInstanceResponseData::_resolveSCMOInstance() " |
|
"Poorly implemented!!!\n"); |
|
try |
|
{ |
|
/*SCMODump dmp; |
|
dmp.dumpSCMOInstanceKeyBindings(data->_scmoInstances[0]); |
|
dmp.dumpInstanceProperties(data->_scmoInstances[0]);*/ |
|
data->_scmoInstances[0].getCIMInstance(instance); |
|
} |
|
catch (CIMException& ex) |
|
{ |
|
fprintf(stderr,"CIMInstanceResponseData::_resolveSCMOInstance() " |
|
"Exception:\n%s\n",(const char*)ex.getMessage().getCString()); |
|
} |
|
catch (Exception& ex) |
|
{ |
|
fprintf(stderr,"CIMInstanceResponseData::_resolveSCMOInstance() " |
|
"Exception:\n%s\n",(const char*)ex.getMessage().getCString()); |
|
} |
|
catch (exception& ex) |
|
{ |
|
fprintf(stderr,"CIMInstanceResponseData::_resolveSCMOInstance() " |
|
"exception:\n%s\n",(const char*)ex.what()); |
|
} |
|
catch (...) |
|
{ |
|
fprintf(stderr,"CIMInstancesResponseData::_resolveSCMOInstances() " |
|
"Exception: UNKNOWN\n"); |
|
} |
|
data->_resolveCallback = 0; |
|
|
|
PEG_METHOD_EXIT(); |
|
return true; |
|
} |
|
|
|
//------------------------------------------------------------------------------ |
// Instantiates a CIMInstance from an xml representation created by | // Instantiates a CIMInstance from an xml representation created by |
// the CIMBinMessageSerializer. | // the CIMBinMessageSerializer. |
// Returns true on success. | // Returns true on success. |
|
|
} | } |
for (Uint32 i = 0, n = _scmoInstances.size(); i < n; i++) | for (Uint32 i = 0, n = _scmoInstances.size(); i < n; i++) |
{ | { |
|
/*SCMODump dmp; |
|
dmp.dumpSCMOInstanceKeyBindings(_scmoInstances[i]); |
|
dmp.dumpInstanceProperties(_scmoInstances[i]);*/ |
|
|
SCMOXmlWriter::appendValueSCMOInstanceElement( | SCMOXmlWriter::appendValueSCMOInstanceElement( |
out, _scmoInstances[i]); | out, _scmoInstances[i]); |
| |
/* |
/* fprintf( |
fprintf( |
|
stderr, | stderr, |
"After appendValueNamedInstanceElement()\n%s", | "After appendValueNamedInstanceElement()\n%s", |
out.getData()); | out.getData()); |
fflush(stderr); |
fflush(stderr);*/ |
*/ |
|
} | } |
} | } |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |