xtemplateserializer.cpp
来自「IBM的解析xml的工具Xerces的源代码」· C++ 代码 · 共 1,995 行 · 第 1/4 页
CPP
1,995 行
, serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int vectorLength = 0; serEng>>vectorLength; for ( int i = 0 ; i < vectorLength; i++) { DatatypeValidator* data; data = DatatypeValidator::loadDV(serEng); (*objToLoad)->addElement(data); } }}void XTemplateSerializer::storeObject(RefVectorOf<IdentityConstraint>* const objToStore , XSerializeEngine& serEng){ if (serEng.needToStoreObject(objToStore)) { int vectorLength = objToStore->size(); serEng<<vectorLength; for ( int i = 0; i < vectorLength; i++) { IdentityConstraint* data = objToStore->elementAt(i); IdentityConstraint::storeIC(serEng, data); } }}void XTemplateSerializer::loadObject(RefVectorOf<IdentityConstraint>** objToLoad , int initSize , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { if (!*objToLoad) { if (initSize < 0) initSize = 16; *objToLoad = new (serEng.getMemoryManager()) RefVectorOf<IdentityConstraint>( initSize , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int vectorLength = 0; serEng>>vectorLength; for ( int i = 0 ; i < vectorLength; i++) { IdentityConstraint* data; data = IdentityConstraint::loadIC(serEng); (*objToLoad)->addElement(data); } }}void XTemplateSerializer::storeObject(RefVectorOf<XMLNumber>* const objToStore , XSerializeEngine& serEng){ if (serEng.needToStoreObject(objToStore)) { int vectorLength = objToStore->size(); serEng<<vectorLength; for ( int i = 0; i < vectorLength; i++) { XMLNumber* data = objToStore->elementAt(i); serEng<<data; } }}void XTemplateSerializer::loadObject(RefVectorOf<XMLNumber>** objToLoad , int initSize , bool toAdopt , XMLNumber::NumberType numType , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { if (!*objToLoad) { if (initSize < 0) initSize = 16; *objToLoad = new (serEng.getMemoryManager()) RefVectorOf<XMLNumber>( initSize , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int vectorLength = 0; serEng>>vectorLength; for ( int i = 0 ; i < vectorLength; i++) { XMLNumber* data; data = XMLNumber::loadNumber(numType , serEng); (*objToLoad)->addElement(data); } }}void XTemplateSerializer::storeObject(RefVectorOf<XercesLocationPath>* const objToStore , XSerializeEngine& serEng){ if (serEng.needToStoreObject(objToStore)) { int vectorLength = objToStore->size(); serEng<<vectorLength; for ( int i = 0; i < vectorLength; i++) { XercesLocationPath* data = objToStore->elementAt(i); serEng<<data; } }}void XTemplateSerializer::loadObject(RefVectorOf<XercesLocationPath>** objToLoad , int initSize , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { if (!*objToLoad) { if (initSize < 0) initSize = 16; *objToLoad = new (serEng.getMemoryManager()) RefVectorOf<XercesLocationPath>( initSize , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int vectorLength = 0; serEng>>vectorLength; for ( int i = 0 ; i < vectorLength; i++) { XercesLocationPath* data; serEng>>data; (*objToLoad)->addElement(data); } }}void XTemplateSerializer::storeObject(RefVectorOf<XercesStep>* const objToStore , XSerializeEngine& serEng){ if (serEng.needToStoreObject(objToStore)) { int vectorLength = objToStore->size(); serEng<<vectorLength; for ( int i = 0; i < vectorLength; i++) { XercesStep* data = objToStore->elementAt(i); serEng<<data; } }}void XTemplateSerializer::loadObject(RefVectorOf<XercesStep>** objToLoad , int initSize , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { if (!*objToLoad) { if (initSize < 0) initSize = 16; *objToLoad = new (serEng.getMemoryManager()) RefVectorOf<XercesStep>( initSize , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int vectorLength = 0; serEng>>vectorLength; for ( int i = 0 ; i < vectorLength; i++) { XercesStep* data; serEng>>data; (*objToLoad)->addElement(data); } }}/********************************************************** * * RefHasbTableOf * * KVStringPair * XMLAttDef * DTDAttDef * ComplexTypeInfo * XercesGroupInfo * XercesAttGroupInfo * XMLRefInfo * DatatypeValidator * Grammar * XSAnnotation * ***********************************************************/void XTemplateSerializer::storeObject(RefHashTableOf<KVStringPair>* const objToStore , XSerializeEngine& serEng) { if (serEng.needToStoreObject(objToStore)) { serEng<<objToStore->getHashModulus(); RefHashTableOfEnumerator<KVStringPair> e(objToStore, false, objToStore->getMemoryManager()); int itemNumber = 0; while (e.hasMoreElements()) { e.nextElement(); itemNumber++; } serEng<<itemNumber; e.Reset(); while (e.hasMoreElements()) { KVStringPair* data = objToStore->get(e.nextElementKey()); serEng<<data; } }}void XTemplateSerializer::loadObject(RefHashTableOf<KVStringPair>** objToLoad , int , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { unsigned int hashModulus; serEng>>hashModulus; if (!*objToLoad) { *objToLoad = new (serEng.getMemoryManager()) RefHashTableOf<KVStringPair>( hashModulus , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int itemNumber = 0; serEng>>itemNumber; for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++) { KVStringPair* data; serEng>>data; (*objToLoad)->put((void*)data->getKey(), data); } }}void XTemplateSerializer::storeObject(RefHashTableOf<XMLAttDef>* const objToStore , XSerializeEngine& serEng) { if (serEng.needToStoreObject(objToStore)) { serEng<<objToStore->getHashModulus(); RefHashTableOfEnumerator<XMLAttDef> e(objToStore, false, objToStore->getMemoryManager()); int itemNumber = 0; while (e.hasMoreElements()) { e.nextElement(); itemNumber++; } serEng<<itemNumber; e.Reset(); while (e.hasMoreElements()) { XMLAttDef* data = objToStore->get(e.nextElementKey()); serEng<<data; } }}void XTemplateSerializer::loadObject(RefHashTableOf<XMLAttDef>** objToLoad , int , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { unsigned int hashModulus; serEng>>hashModulus; if (!*objToLoad) { *objToLoad = new (serEng.getMemoryManager()) RefHashTableOf<XMLAttDef>( hashModulus , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int itemNumber = 0; serEng>>itemNumber; for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++) { //This is used solely by SchemaGrammar and by all means it must be //SchemaAttDef, ideally we may change it to RefHashTableOf<SchemaAttDef> //later on. //Affected files IGXMLScanner, SGXMLScanner, SchemaGrammar, TraverseSchema //XMLAttDef* data; SchemaAttDef* data; serEng>>data; (*objToLoad)->put((void*)data->getAttName()->getLocalPart(), data); } }}void XTemplateSerializer::storeObject(RefHashTableOf<DTDAttDef>* const objToStore , XSerializeEngine& serEng) { if (serEng.needToStoreObject(objToStore)) { serEng<<objToStore->getHashModulus(); RefHashTableOfEnumerator<DTDAttDef> e(objToStore, false, objToStore->getMemoryManager()); int itemNumber = 0; while (e.hasMoreElements()) { e.nextElement(); itemNumber++; } serEng<<itemNumber; e.Reset(); while (e.hasMoreElements()) { DTDAttDef* data = objToStore->get(e.nextElementKey()); serEng<<data; } }}void XTemplateSerializer::loadObject(RefHashTableOf<DTDAttDef>** objToLoad , int , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { unsigned int hashModulus; serEng>>hashModulus; if (!*objToLoad) { *objToLoad = new (serEng.getMemoryManager()) RefHashTableOf<DTDAttDef>( hashModulus , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad); int itemNumber = 0; serEng>>itemNumber; for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++) { DTDAttDef* data; serEng>>data; (*objToLoad)->put((void*)data->getFullName(), data); } }}void XTemplateSerializer::storeObject(RefHashTableOf<ComplexTypeInfo>* const objToStore , XSerializeEngine& serEng) { if (serEng.needToStoreObject(objToStore)) { serEng<<objToStore->getHashModulus(); RefHashTableOfEnumerator<ComplexTypeInfo> e(objToStore, false, objToStore->getMemoryManager()); int itemNumber = 0; while (e.hasMoreElements()) { e.nextElement(); itemNumber++; } serEng<<itemNumber; e.Reset(); while (e.hasMoreElements()) { ComplexTypeInfo* data = objToStore->get(e.nextElementKey()); serEng<<data; } }}void XTemplateSerializer::loadObject(RefHashTableOf<ComplexTypeInfo>** objToLoad , int , bool toAdopt , XSerializeEngine& serEng){ if (serEng.needToLoadObject((void**)objToLoad)) { unsigned int hashModulus; serEng>>hashModulus; if (!*objToLoad) { *objToLoad = new (serEng.getMemoryManager()) RefHashTableOf<ComplexTypeInfo>( hashModulus , toAdopt , serEng.getMemoryManager() ); } serEng.registerObject(*objToLoad);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?