version 1.38.4.2, 2008/01/21 01:28:10
|
version 1.39, 2007/07/24 20:02:06
|
|
|
CIMMessage* message = 0; | CIMMessage* message = 0; |
String messageID; | String messageID; |
String typeString; | String typeString; |
Uint32 type; |
MessageType type; |
CIMValue genericValue; | CIMValue genericValue; |
#ifndef PEGASUS_DISABLE_PERFINST | #ifndef PEGASUS_DISABLE_PERFINST |
Uint64 serverStartTimeMicroseconds; | Uint64 serverStartTimeMicroseconds; |
|
|
| |
found = entry.getAttributeValue("TYPE", typeString); | found = entry.getAttributeValue("TYPE", typeString); |
PEGASUS_ASSERT(found); | PEGASUS_ASSERT(found); |
type = Uint32(atoi(typeString.getCString())); |
type = MessageType(atoi(typeString.getCString())); |
| |
#ifndef PEGASUS_DISABLE_PERFINST | #ifndef PEGASUS_DISABLE_PERFINST |
// Deserialize the performance statistics data | // Deserialize the performance statistics data |
|
|
// | // |
CIMRequestMessage* CIMMessageDeserializer::_deserializeCIMRequestMessage( | CIMRequestMessage* CIMMessageDeserializer::_deserializeCIMRequestMessage( |
XmlParser& parser, | XmlParser& parser, |
Uint32 type) |
MessageType type) |
{ | { |
CIMRequestMessage* message = 0; | CIMRequestMessage* message = 0; |
XmlEntry entry; | XmlEntry entry; |
|
|
case CIM_INVOKE_METHOD_REQUEST_MESSAGE: | case CIM_INVOKE_METHOD_REQUEST_MESSAGE: |
cimOpReqMessage = _deserializeCIMInvokeMethodRequestMessage(parser); | cimOpReqMessage = _deserializeCIMInvokeMethodRequestMessage(parser); |
break; | break; |
|
|
|
default: |
|
// Unexpected message type |
|
PEGASUS_ASSERT(0); |
|
break; |
} | } |
PEGASUS_ASSERT(cimOpReqMessage != 0); | PEGASUS_ASSERT(cimOpReqMessage != 0); |
| |
|
|
cimIndReqMessage = | cimIndReqMessage = |
_deserializeCIMDeleteSubscriptionRequestMessage(parser); | _deserializeCIMDeleteSubscriptionRequestMessage(parser); |
break; | break; |
|
default: |
|
// Unexpected message type |
|
PEGASUS_ASSERT(0); |
|
break; |
} | } |
PEGASUS_ASSERT(cimIndReqMessage != 0); | PEGASUS_ASSERT(cimIndReqMessage != 0); |
| |
|
|
_deserializeCIMSubscriptionInitCompleteRequestMessage | _deserializeCIMSubscriptionInitCompleteRequestMessage |
(parser); | (parser); |
break; | break; |
|
default: |
|
// Unexpected message type |
|
PEGASUS_ASSERT(0); |
|
break; |
} | } |
PEGASUS_ASSERT(message != 0); | PEGASUS_ASSERT(message != 0); |
| |
|
|
// | // |
CIMResponseMessage* CIMMessageDeserializer::_deserializeCIMResponseMessage( | CIMResponseMessage* CIMMessageDeserializer::_deserializeCIMResponseMessage( |
XmlParser& parser, | XmlParser& parser, |
Uint32 type) |
MessageType type) |
{ | { |
CIMResponseMessage* message = 0; | CIMResponseMessage* message = 0; |
QueueIdStack queueIdStack; | QueueIdStack queueIdStack; |
|
|
_deserializeCIMSubscriptionInitCompleteResponseMessage | _deserializeCIMSubscriptionInitCompleteResponseMessage |
(parser); | (parser); |
break; | break; |
|
|
|
default: |
|
// Unexpected message type |
|
PEGASUS_ASSERT(0); |
|
break; |
} | } |
PEGASUS_ASSERT(message != 0); | PEGASUS_ASSERT(message != 0); |
| |
|
|
XmlReader::expectEndTag(parser, "PGOCPI"); | XmlReader::expectEndTag(parser, "PGOCPI"); |
} | } |
| |
if (XmlReader::testStartTag(parser, entry, "PGOCCCD")) |
|
{ |
|
CIMClass cimClass; |
|
|
|
XmlReader::getClassElement(parser, cimClass); |
|
operationContext.insert(CachedClassDefinitionContainer(cimClass)); |
|
XmlReader::expectEndTag(parser, "PGOCCCD"); |
|
} |
|
|
|
XmlReader::expectEndTag(parser, "PGOC"); | XmlReader::expectEndTag(parser, "PGOC"); |
} | } |
| |
|
|
} | } |
| |
// | // |
// _deserializeCIMParamValue |
|
// |
|
Boolean CIMMessageDeserializer::_deserializeCIMParamValue( |
|
XmlParser& parser, |
|
CIMParamValue& paramValue) |
|
{ |
|
XmlEntry entry; |
|
|
|
if (XmlReader::getParamValueElement(parser, paramValue)) |
|
{ |
|
return true; |
|
} |
|
|
|
if (XmlReader::testStartTagOrEmptyTag(parser, entry, "PGNULLPARAMVALUE")) |
|
{ |
|
// The parameter value is null; set the correct type |
|
|
|
CIMValue genericValue; |
|
CIMType type; |
|
String name; |
|
Boolean isArray; |
|
|
|
Boolean found = XmlReader::getCimTypeAttribute( |
|
parser.getLine(), |
|
entry, |
|
type, |
|
"PGNULLPARAMVALUE", |
|
"PARAMTYPE", |
|
false); |
|
PEGASUS_ASSERT(found); |
|
|
|
XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue); |
|
genericValue.get(name); |
|
|
|
XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue); |
|
genericValue.get(isArray); |
|
|
|
XmlReader::expectEndTag(parser, "PGNULLPARAMVALUE"); |
|
|
|
paramValue = CIMParamValue(name, CIMValue(type, isArray), true); |
|
return true; |
|
} |
|
|
|
return false; |
|
} |
|
|
|
|
|
// |
|
// | // |
// Response Messages | // Response Messages |
// | // |
|
|
| |
_deserializeCIMObjectPath(parser, instanceName); | _deserializeCIMObjectPath(parser, instanceName); |
| |
_deserializeCIMParamValue(parser, newValue); |
XmlReader::getParamValueElement(parser, newValue); |
| |
CIMSetPropertyRequestMessage* message = | CIMSetPropertyRequestMessage* message = |
new CIMSetPropertyRequestMessage( | new CIMSetPropertyRequestMessage( |
|
|
| |
// Get inParameter array | // Get inParameter array |
XmlReader::expectStartTag(parser, entry, "PGPARAMS"); | XmlReader::expectStartTag(parser, entry, "PGPARAMS"); |
while (_deserializeCIMParamValue(parser, genericParamValue)) |
while (XmlReader::getParamValueElement(parser, genericParamValue)) |
{ | { |
inParameters.append(genericParamValue); | inParameters.append(genericParamValue); |
} | } |
|
|
{ | { |
CIMParamValue value; | CIMParamValue value; |
| |
_deserializeCIMParamValue(parser, value); |
XmlReader::getParamValueElement(parser, value); |
| |
CIMGetPropertyResponseMessage* message = | CIMGetPropertyResponseMessage* message = |
new CIMGetPropertyResponseMessage( | new CIMGetPropertyResponseMessage( |
|
|
CIMName methodName; | CIMName methodName; |
Array<CIMParamValue> outParameters; | Array<CIMParamValue> outParameters; |
| |
_deserializeCIMParamValue(parser, retValue); |
XmlReader::getParamValueElement(parser, retValue); |
| |
// Get outParameter array | // Get outParameter array |
XmlReader::expectStartTag(parser, entry, "PGPARAMS"); | XmlReader::expectStartTag(parser, entry, "PGPARAMS"); |
while (_deserializeCIMParamValue(parser, genericParamValue)) |
while (XmlReader::getParamValueElement(parser, genericParamValue)) |
{ | { |
outParameters.append(genericParamValue); | outParameters.append(genericParamValue); |
} | } |