version 1.1.2.15, 2009/11/04 09:02:50
|
version 1.1.2.18, 2009/12/09 11:12:17
|
|
|
// Append Instance Qualifiers: | // Append Instance Qualifiers: |
if (scmoInstance.inst.hdr->flags.includeQualifiers) | if (scmoInstance.inst.hdr->flags.includeQualifiers) |
{ | { |
SCMBClass_Main *classMain=scmoInstance.inst.hdr->theClass->cls.hdr; |
SCMBClass_Main *classMain=scmoInstance.inst.hdr->theClass.ptr->cls.hdr; |
char* clsbase = scmoInstance.inst.hdr->theClass->cls.base; |
char* clsbase = scmoInstance.inst.hdr->theClass.ptr->cls.base; |
| |
SCMBQualifier *theArray = | SCMBQualifier *theArray = |
(SCMBQualifier*)&(clsbase[classMain->qualifierArray.start]); | (SCMBQualifier*)&(clsbase[classMain->qualifierArray.start]); |
|
|
SCMBClassProperty * propertyDef; | SCMBClassProperty * propertyDef; |
// This is the absolute pointer at which the class info for the given | // This is the absolute pointer at which the class info for the given |
// instance starts | // instance starts |
const char* clsbase = scmoInstance.inst.hdr->theClass->cls.base; |
const char* clsbase = scmoInstance.inst.hdr->theClass.ptr->cls.base; |
| |
scmoInstance._getPropertyAt( | scmoInstance._getPropertyAt( |
pos, | pos, |
|
|
| |
out.append( | out.append( |
&(clsbase[propertyDef->name.start]), | &(clsbase[propertyDef->name.start]), |
propertyDef->name.size-1); |
(propertyDef->name.size-1 & 0x00000000FFFFFFFF)); |
| |
out.append('"',' '); | out.append('"',' '); |
//out << STRLIT("\" "); | //out << STRLIT("\" "); |
|
|
out << STRLIT(" CLASSORIGIN=\""); | out << STRLIT(" CLASSORIGIN=\""); |
out.append( | out.append( |
&(clsbase[propertyDef->originClassName.start]), | &(clsbase[propertyDef->originClassName.start]), |
propertyDef->originClassName.size-1); |
(propertyDef->originClassName.size-1 & 0x00000000FFFFFFFF)); |
out.append('"'); | out.append('"'); |
} | } |
} | } |
|
|
out << STRLIT("<PROPERTY.REFERENCE NAME=\""); | out << STRLIT("<PROPERTY.REFERENCE NAME=\""); |
out.append( | out.append( |
&(clsbase[propertyDef->name.start]), | &(clsbase[propertyDef->name.start]), |
propertyDef->name.size-1); |
(propertyDef->name.size-1 & 0x00000000FFFFFFFF)); |
out.append('"',' '); | out.append('"',' '); |
//out << STRLIT("\" "); | //out << STRLIT("\" "); |
| |
|
|
out << STRLIT(" REFERENCECLASS=\""); | out << STRLIT(" REFERENCECLASS=\""); |
out.append( | out.append( |
&(clsbase[propertyDef->refClassName.start]), | &(clsbase[propertyDef->refClassName.start]), |
propertyDef->refClassName.size-1); |
(propertyDef->refClassName.size-1 & 0x00000000FFFFFFFF)); |
out.append('"'); | out.append('"'); |
} | } |
| |
|
|
out << STRLIT(" CLASSORIGIN=\""); | out << STRLIT(" CLASSORIGIN=\""); |
out.append( | out.append( |
&(clsbase[propertyDef->originClassName.start]), | &(clsbase[propertyDef->originClassName.start]), |
propertyDef->originClassName.size-1); |
(propertyDef->originClassName.size-1 & 0x00000000FFFFFFFF)); |
out.append('"'); | out.append('"'); |
} | } |
} | } |
|
|
| |
out.append( | out.append( |
&(clsbase[propertyDef->name.start]), | &(clsbase[propertyDef->name.start]), |
propertyDef->name.size-1); |
(propertyDef->name.size-1 & 0x00000000FFFFFFFF)); |
| |
out.append('"',' '); | out.append('"',' '); |
//out << STRLIT("\" "); | //out << STRLIT("\" "); |
|
|
out << STRLIT(" CLASSORIGIN=\""); | out << STRLIT(" CLASSORIGIN=\""); |
out.append( | out.append( |
&(clsbase[propertyDef->originClassName.start]), | &(clsbase[propertyDef->originClassName.start]), |
propertyDef->originClassName.size-1); |
(propertyDef->originClassName.size-1 & 0x00000000FFFFFFFF)); |
out.append('"'); | out.append('"'); |
} | } |
} | } |
|
|
const SCMOInstance& cimClass) | const SCMOInstance& cimClass) |
{ | { |
| |
SCMBClass_Main* theClass = cimClass.inst.hdr->theClass->cls.hdr; |
SCMBClass_Main* ptrClass = cimClass.inst.hdr->theClass.ptr->cls.hdr; |
const char* clsBase = cimClass.inst.hdr->theClass->cls.base; |
const char* clsBase = cimClass.inst.hdr->theClass.ptr->cls.base; |
| |
// Class opening element: | // Class opening element: |
out << STRLIT("<CLASS NAME=\""); | out << STRLIT("<CLASS NAME=\""); |
out.append( | out.append( |
&(clsBase[theClass->className.start]), |
&(clsBase[ptrClass->className.start]), |
theClass->className.size-1); |
(ptrClass->className.size-1 & 0x00000000FFFFFFFF)); |
| |
out.append('"',' '); | out.append('"',' '); |
if (0 != theClass->superClassName.start) |
if (0 != ptrClass->superClassName.start) |
{ | { |
out << STRLIT(" SUPERCLASS=\""); | out << STRLIT(" SUPERCLASS=\""); |
out.append( | out.append( |
&(clsBase[theClass->superClassName.start]), |
&(clsBase[ptrClass->superClassName.start]), |
theClass->superClassName.size-1); |
(ptrClass->superClassName.size-1 & 0x00000000FFFFFFFF)); |
out.append('"',' '); | out.append('"',' '); |
} | } |
out.append('>','\n'); | out.append('>','\n'); |
| |
// Append class qualifiers | // Append class qualifiers |
SCMBQualifier *theArray = | SCMBQualifier *theArray = |
(SCMBQualifier*)&(clsBase[theClass->qualifierArray.start]); |
(SCMBQualifier*)&(clsBase[ptrClass->qualifierArray.start]); |
for (Uint32 i=0, n=theClass->numberOfQualifiers;i<n;i++) |
for (Uint32 i=0, n=ptrClass->numberOfQualifiers;i<n;i++) |
{ | { |
SCMOXmlWriter::appendQualifierElement(out,theArray[i],clsBase); | SCMOXmlWriter::appendQualifierElement(out,theArray[i],clsBase); |
} | } |
|
|
{ | { |
SCMOXmlWriter::appendSpecial( | SCMOXmlWriter::appendSpecial( |
out, | out, |
u.simple.val.c16); |
Char16(u.simple.val.c16)); |
} | } |
break; | break; |
} | } |
|
|
SCMOXmlWriter::appendSpecial( | SCMOXmlWriter::appendSpecial( |
out, | out, |
&(base[u.stringValue.start]), | &(base[u.stringValue.start]), |
u.stringValue.size-1); |
(u.stringValue.size-1 & 0x00000000FFFFFFFF)); |
} | } |
break; | break; |
} | } |
|
|
while (numElements--) | while (numElements--) |
{ | { |
out << STRLIT("<VALUE>"); | out << STRLIT("<VALUE>"); |
SCMOXmlWriter::append(out, arr->simple.val.bin); |
SCMOXmlWriter::appendSpecial(out, Char16(arr->simple.val.c16)); |
SCMOXmlWriter::appendSpecial(out, arr->simple.val.c16); |
|
arr++; | arr++; |
out << STRLIT("</VALUE>\n"); | out << STRLIT("</VALUE>\n"); |
} | } |
|
|
while (numElements--) | while (numElements--) |
{ | { |
out << STRLIT("<VALUE>"); | out << STRLIT("<VALUE>"); |
|
if (0!=arr->stringValue.start) |
|
{ |
SCMOXmlWriter::appendSpecial( | SCMOXmlWriter::appendSpecial( |
out, | out, |
&(base[arr->stringValue.start]), | &(base[arr->stringValue.start]), |
arr->stringValue.size-1); |
(arr->stringValue.size-1 & 0x00000000FFFFFFFF)); |
|
} |
arr++; | arr++; |
out << STRLIT("</VALUE>\n"); | out << STRLIT("</VALUE>\n"); |
} | } |