PageRenderTime 30ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/ATF2/control-software/epics-3.14.8/extensions/src/ChannelArchiver/ThirdParty/xerces-c-src2_4_0/src/xercesc/internal/XTemplateSerializer.cpp

http://atf2flightsim.googlecode.com/
C++ | 1951 lines | 1408 code | 381 blank | 162 comment | 185 complexity | 81b68c184e4c22a089488b9296b46409 MD5 | raw file
Possible License(s): BSD-2-Clause, LGPL-2.0, IPL-1.0, BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. /*
  2. * The Apache Software License, Version 1.1
  3. *
  4. * Copyright (c) 2003 The Apache Software Foundation. All rights
  5. * reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. *
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. *
  14. * 2. Redistributions in binary form must reproduce the above copyright
  15. * notice, this list of conditions and the following disclaimer in
  16. * the documentation and/or other materials provided with the
  17. * distribution.
  18. *
  19. * 3. The end-user documentation included with the redistribution,
  20. * if any, must include the following acknowledgment:
  21. * "This product includes software developed by the
  22. * Apache Software Foundation (http://www.apache.org/)."
  23. * Alternately, this acknowledgment may appear in the software itself,
  24. * if and wherever such third-party acknowledgments normally appear.
  25. *
  26. * 4. The names "Xerces" and "Apache Software Foundation" must
  27. * not be used to endorse or promote products derived from this
  28. * software without prior written permission. For written
  29. * permission, please contact apache\@apache.org.
  30. *
  31. * 5. Products derived from this software may not be called "Apache",
  32. * nor may "Apache" appear in their name, without prior written
  33. * permission of the Apache Software Foundation.
  34. *
  35. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38. * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39. * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42. * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46. * SUCH DAMAGE.
  47. * ====================================================================
  48. *
  49. * This software consists of voluntary contributions made by many
  50. * individuals on behalf of the Apache Software Foundation, and was
  51. * originally based on software copyright (c) 1999, International
  52. * Business Machines, Inc., http://www.ibm.com . For more information
  53. * on the Apache Software Foundation, please see
  54. * <http://www.apache.org/>.
  55. */
  56. /*
  57. * $Id: XTemplateSerializer.cpp,v 1.1.1.1 2009/03/14 06:42:17 whitegr Exp $
  58. * $Log: XTemplateSerializer.cpp,v $
  59. * Revision 1.1.1.1 2009/03/14 06:42:17 whitegr
  60. * epics channel archiver
  61. *
  62. * Revision 1.5 2003/11/11 22:48:13 knoaman
  63. * Serialization of XSAnnotation.
  64. *
  65. * Revision 1.4 2003/11/03 22:01:27 peiyongz
  66. * Store/Load keys separately from SchemaElementDecl
  67. *
  68. * Revision 1.3 2003/10/31 22:15:31 peiyongz
  69. * fix bug in creating ElemVector
  70. *
  71. * Revision 1.2 2003/10/29 16:16:08 peiyongz
  72. * GrammarPool' serialization/deserialization support
  73. *
  74. * Revision 1.1 2003/10/17 21:07:49 peiyongz
  75. * To support Template object serialization/deserialization
  76. *
  77. *
  78. */
  79. // ---------------------------------------------------------------------------
  80. // Includes
  81. // ---------------------------------------------------------------------------
  82. #include <xercesc/internal/XSerializeEngine.hpp>
  83. #include <xercesc/internal/XTemplateSerializer.hpp>
  84. #include <xercesc/validators/common/Grammar.hpp>
  85. #include <xercesc/util/HashPtr.hpp>
  86. XERCES_CPP_NAMESPACE_BEGIN
  87. /**********************************************************
  88. *
  89. * ValueVectorOf
  90. *
  91. * SchemaElementDecl*
  92. * unsigned int
  93. *
  94. ***********************************************************/
  95. void XTemplateSerializer::storeObject(ValueVectorOf<SchemaElementDecl*>* const objToStore
  96. , XSerializeEngine& serEng)
  97. {
  98. if (serEng.needToStoreObject(objToStore))
  99. {
  100. int vectorSize = objToStore->size();
  101. serEng<<vectorSize;
  102. for ( int i = 0; i < vectorSize; i++)
  103. {
  104. SchemaElementDecl*& data = objToStore->elementAt(i);
  105. serEng<<data;
  106. }
  107. }
  108. }
  109. void XTemplateSerializer::loadObject(ValueVectorOf<SchemaElementDecl*>** objToLoad
  110. , int initSize
  111. , bool toCallDestructor
  112. , XSerializeEngine& serEng)
  113. {
  114. if (serEng.needToLoadObject((void**)objToLoad))
  115. {
  116. if (!*objToLoad)
  117. {
  118. if (initSize < 0)
  119. initSize = 16;
  120. *objToLoad = new (serEng.getMemoryManager())
  121. ValueVectorOf<SchemaElementDecl*>(
  122. initSize
  123. , serEng.getMemoryManager()
  124. , toCallDestructor
  125. );
  126. }
  127. serEng.registerObject(*objToLoad);
  128. int vectorSize = 0;
  129. serEng>>vectorSize;
  130. for ( int i = 0; i < vectorSize; i++)
  131. {
  132. SchemaElementDecl* data;
  133. serEng>>data;
  134. (*objToLoad)->addElement(data);
  135. }
  136. }
  137. }
  138. void XTemplateSerializer::storeObject(ValueVectorOf<unsigned int>* const objToStore
  139. , XSerializeEngine& serEng)
  140. {
  141. if (serEng.needToStoreObject(objToStore))
  142. {
  143. int vectorSize = objToStore->size();
  144. serEng<<vectorSize;
  145. for ( int i = 0; i < vectorSize; i++)
  146. {
  147. unsigned int& data = objToStore->elementAt(i);
  148. serEng<<data;
  149. }
  150. }
  151. }
  152. void XTemplateSerializer::loadObject(ValueVectorOf<unsigned int>** objToLoad
  153. , int initSize
  154. , bool toCallDestructor
  155. , XSerializeEngine& serEng)
  156. {
  157. if (serEng.needToLoadObject((void**)objToLoad))
  158. {
  159. if (!*objToLoad)
  160. {
  161. if (initSize < 0)
  162. initSize = 16;
  163. *objToLoad = new (serEng.getMemoryManager())
  164. ValueVectorOf<unsigned int>(
  165. initSize
  166. , serEng.getMemoryManager()
  167. , toCallDestructor
  168. );
  169. }
  170. serEng.registerObject(*objToLoad);
  171. int vectorSize = 0;
  172. serEng>>vectorSize;
  173. for ( int i = 0; i < vectorSize; i++)
  174. {
  175. unsigned int data;
  176. serEng>>data;
  177. (*objToLoad)->addElement(data);
  178. }
  179. }
  180. }
  181. /**********************************************************
  182. *
  183. * RefArrayVectorOf
  184. *
  185. * XMLCh
  186. *
  187. ***********************************************************/
  188. void XTemplateSerializer::storeObject(RefArrayVectorOf<XMLCh>* const objToStore
  189. , XSerializeEngine& serEng)
  190. {
  191. if (serEng.needToStoreObject(objToStore))
  192. {
  193. int vectorSize = objToStore->size();
  194. serEng<<vectorSize;
  195. for ( int i = 0; i < vectorSize; i++)
  196. {
  197. serEng.writeString(objToStore->elementAt(i));
  198. }
  199. }
  200. }
  201. void XTemplateSerializer::loadObject(RefArrayVectorOf<XMLCh>** objToLoad
  202. , int initSize
  203. , bool toAdopt
  204. , XSerializeEngine& serEng)
  205. {
  206. if (serEng.needToLoadObject((void**)objToLoad))
  207. {
  208. if (!*objToLoad)
  209. {
  210. if (initSize < 0)
  211. initSize = 16;
  212. *objToLoad = new (serEng.getMemoryManager())
  213. RefArrayVectorOf<XMLCh>(
  214. initSize
  215. , toAdopt
  216. , serEng.getMemoryManager()
  217. );
  218. }
  219. serEng.registerObject(*objToLoad);
  220. int vectorSize = 0;
  221. serEng>>vectorSize;
  222. for ( int i = 0; i < vectorSize; i++)
  223. {
  224. XMLCh* data;
  225. serEng.readString(data);
  226. (*objToLoad)->addElement(data);
  227. }
  228. }
  229. }
  230. /**********************************************************
  231. *
  232. * RefVectorOf
  233. *
  234. * SchemaAttDef
  235. * SchemaElementDecl
  236. * ContentSpecNode
  237. * IC_Field
  238. * DatatypeValidator
  239. * IdentityConstraint
  240. * XMLNumber
  241. * XercesLocationPath
  242. * XercesStep
  243. *
  244. ***********************************************************/
  245. void XTemplateSerializer::storeObject(RefVectorOf<SchemaAttDef>* const objToStore
  246. , XSerializeEngine& serEng)
  247. {
  248. if (serEng.needToStoreObject(objToStore))
  249. {
  250. int vectorLength = objToStore->size();
  251. serEng<<vectorLength;
  252. for ( int i = 0; i < vectorLength; i++)
  253. {
  254. SchemaAttDef* data = objToStore->elementAt(i);
  255. serEng<<data;
  256. }
  257. }
  258. }
  259. void XTemplateSerializer::loadObject(RefVectorOf<SchemaAttDef>** objToLoad
  260. , int initSize
  261. , bool toAdopt
  262. , XSerializeEngine& serEng)
  263. {
  264. if (serEng.needToLoadObject((void**)objToLoad))
  265. {
  266. if (!*objToLoad)
  267. {
  268. if (initSize < 0)
  269. initSize = 16;
  270. *objToLoad = new (serEng.getMemoryManager())
  271. RefVectorOf<SchemaAttDef>(
  272. initSize
  273. , toAdopt
  274. , serEng.getMemoryManager()
  275. );
  276. }
  277. serEng.registerObject(*objToLoad);
  278. int vectorLength = 0;
  279. serEng>>vectorLength;
  280. for ( int i = 0 ; i < vectorLength; i++)
  281. {
  282. SchemaAttDef* data;
  283. serEng>>data;
  284. (*objToLoad)->addElement(data);
  285. }
  286. }
  287. }
  288. void XTemplateSerializer::storeObject(RefVectorOf<SchemaElementDecl>* const objToStore
  289. , XSerializeEngine& serEng)
  290. {
  291. if (serEng.needToStoreObject(objToStore))
  292. {
  293. int vectorLength = objToStore->size();
  294. serEng<<vectorLength;
  295. for ( int i = 0; i < vectorLength; i++)
  296. {
  297. SchemaElementDecl* data = objToStore->elementAt(i);
  298. serEng<<data;
  299. }
  300. }
  301. }
  302. void XTemplateSerializer::loadObject(RefVectorOf<SchemaElementDecl>** objToLoad
  303. , int initSize
  304. , bool toAdopt
  305. , XSerializeEngine& serEng)
  306. {
  307. if (serEng.needToLoadObject((void**)objToLoad))
  308. {
  309. if (!*objToLoad)
  310. {
  311. if (initSize < 0)
  312. initSize = 16;
  313. *objToLoad = new (serEng.getMemoryManager())
  314. RefVectorOf<SchemaElementDecl>(
  315. initSize
  316. , toAdopt
  317. , serEng.getMemoryManager()
  318. );
  319. }
  320. serEng.registerObject(*objToLoad);
  321. int vectorLength = 0;
  322. serEng>>vectorLength;
  323. for ( int i = 0 ; i < vectorLength; i++)
  324. {
  325. SchemaElementDecl* data;
  326. serEng>>data;
  327. (*objToLoad)->addElement(data);
  328. }
  329. }
  330. }
  331. void XTemplateSerializer::storeObject(RefVectorOf<ContentSpecNode>* const objToStore
  332. , XSerializeEngine& serEng)
  333. {
  334. if (serEng.needToStoreObject(objToStore))
  335. {
  336. int vectorLength = objToStore->size();
  337. serEng<<vectorLength;
  338. for ( int i = 0; i < vectorLength; i++)
  339. {
  340. ContentSpecNode* data = objToStore->elementAt(i);
  341. serEng<<data;
  342. }
  343. }
  344. }
  345. void XTemplateSerializer::loadObject(RefVectorOf<ContentSpecNode>** objToLoad
  346. , int initSize
  347. , bool toAdopt
  348. , XSerializeEngine& serEng)
  349. {
  350. if (serEng.needToLoadObject((void**)objToLoad))
  351. {
  352. if (!*objToLoad)
  353. {
  354. if (initSize < 0)
  355. initSize = 16;
  356. *objToLoad = new (serEng.getMemoryManager())
  357. RefVectorOf<ContentSpecNode>(
  358. initSize
  359. , toAdopt
  360. , serEng.getMemoryManager()
  361. );
  362. }
  363. serEng.registerObject(*objToLoad);
  364. int vectorLength = 0;
  365. serEng>>vectorLength;
  366. for ( int i = 0 ; i < vectorLength; i++)
  367. {
  368. ContentSpecNode* data;
  369. serEng>>data;
  370. (*objToLoad)->addElement(data);
  371. }
  372. }
  373. }
  374. void XTemplateSerializer::storeObject(RefVectorOf<IC_Field>* const objToStore
  375. , XSerializeEngine& serEng)
  376. {
  377. if (serEng.needToStoreObject(objToStore))
  378. {
  379. int vectorLength = objToStore->size();
  380. serEng<<vectorLength;
  381. for ( int i = 0; i < vectorLength; i++)
  382. {
  383. IC_Field* data = objToStore->elementAt(i);
  384. serEng<<data;
  385. }
  386. }
  387. }
  388. void XTemplateSerializer::loadObject(RefVectorOf<IC_Field>** objToLoad
  389. , int initSize
  390. , bool toAdopt
  391. , XSerializeEngine& serEng)
  392. {
  393. if (serEng.needToLoadObject((void**)objToLoad))
  394. {
  395. if (!*objToLoad)
  396. {
  397. if (initSize < 0)
  398. initSize = 16;
  399. *objToLoad = new (serEng.getMemoryManager())
  400. RefVectorOf<IC_Field>(
  401. initSize
  402. , toAdopt
  403. , serEng.getMemoryManager()
  404. );
  405. }
  406. serEng.registerObject(*objToLoad);
  407. int vectorLength = 0;
  408. serEng>>vectorLength;
  409. for ( int i = 0 ; i < vectorLength; i++)
  410. {
  411. IC_Field* data;
  412. serEng>>data;
  413. (*objToLoad)->addElement(data);
  414. }
  415. }
  416. }
  417. void XTemplateSerializer::storeObject(RefVectorOf<DatatypeValidator>* const objToStore
  418. , XSerializeEngine& serEng)
  419. {
  420. if (serEng.needToStoreObject(objToStore))
  421. {
  422. int vectorLength = objToStore->size();
  423. serEng<<vectorLength;
  424. for ( int i = 0; i < vectorLength; i++)
  425. {
  426. DatatypeValidator* data = objToStore->elementAt(i);
  427. DatatypeValidator::storeDV(serEng, data);
  428. }
  429. }
  430. }
  431. void XTemplateSerializer::loadObject(RefVectorOf<DatatypeValidator>** objToLoad
  432. , int initSize
  433. , bool toAdopt
  434. , XSerializeEngine& serEng)
  435. {
  436. if (serEng.needToLoadObject((void**)objToLoad))
  437. {
  438. if (!*objToLoad)
  439. {
  440. if (initSize < 0)
  441. initSize = 16;
  442. *objToLoad = new (serEng.getMemoryManager())
  443. RefVectorOf<DatatypeValidator>(
  444. initSize
  445. , toAdopt
  446. , serEng.getMemoryManager()
  447. );
  448. }
  449. serEng.registerObject(*objToLoad);
  450. int vectorLength = 0;
  451. serEng>>vectorLength;
  452. for ( int i = 0 ; i < vectorLength; i++)
  453. {
  454. DatatypeValidator* data;
  455. data = DatatypeValidator::loadDV(serEng);
  456. (*objToLoad)->addElement(data);
  457. }
  458. }
  459. }
  460. void XTemplateSerializer::storeObject(RefVectorOf<IdentityConstraint>* const objToStore
  461. , XSerializeEngine& serEng)
  462. {
  463. if (serEng.needToStoreObject(objToStore))
  464. {
  465. int vectorLength = objToStore->size();
  466. serEng<<vectorLength;
  467. for ( int i = 0; i < vectorLength; i++)
  468. {
  469. IdentityConstraint* data = objToStore->elementAt(i);
  470. IdentityConstraint::storeIC(serEng, data);
  471. }
  472. }
  473. }
  474. void XTemplateSerializer::loadObject(RefVectorOf<IdentityConstraint>** objToLoad
  475. , int initSize
  476. , bool toAdopt
  477. , XSerializeEngine& serEng)
  478. {
  479. if (serEng.needToLoadObject((void**)objToLoad))
  480. {
  481. if (!*objToLoad)
  482. {
  483. if (initSize < 0)
  484. initSize = 16;
  485. *objToLoad = new (serEng.getMemoryManager())
  486. RefVectorOf<IdentityConstraint>(
  487. initSize
  488. , toAdopt
  489. , serEng.getMemoryManager()
  490. );
  491. }
  492. serEng.registerObject(*objToLoad);
  493. int vectorLength = 0;
  494. serEng>>vectorLength;
  495. for ( int i = 0 ; i < vectorLength; i++)
  496. {
  497. IdentityConstraint* data;
  498. data = IdentityConstraint::loadIC(serEng);
  499. (*objToLoad)->addElement(data);
  500. }
  501. }
  502. }
  503. void XTemplateSerializer::storeObject(RefVectorOf<XMLNumber>* const objToStore
  504. , XSerializeEngine& serEng)
  505. {
  506. if (serEng.needToStoreObject(objToStore))
  507. {
  508. int vectorLength = objToStore->size();
  509. serEng<<vectorLength;
  510. for ( int i = 0; i < vectorLength; i++)
  511. {
  512. XMLNumber* data = objToStore->elementAt(i);
  513. serEng<<data;
  514. }
  515. }
  516. }
  517. void XTemplateSerializer::loadObject(RefVectorOf<XMLNumber>** objToLoad
  518. , int initSize
  519. , bool toAdopt
  520. , XMLNumber::NumberType numType
  521. , XSerializeEngine& serEng)
  522. {
  523. if (serEng.needToLoadObject((void**)objToLoad))
  524. {
  525. if (!*objToLoad)
  526. {
  527. if (initSize < 0)
  528. initSize = 16;
  529. *objToLoad = new (serEng.getMemoryManager())
  530. RefVectorOf<XMLNumber>(
  531. initSize
  532. , toAdopt
  533. , serEng.getMemoryManager()
  534. );
  535. }
  536. serEng.registerObject(*objToLoad);
  537. int vectorLength = 0;
  538. serEng>>vectorLength;
  539. for ( int i = 0 ; i < vectorLength; i++)
  540. {
  541. XMLNumber* data;
  542. data = XMLNumber::loadNumber(numType , serEng);
  543. (*objToLoad)->addElement(data);
  544. }
  545. }
  546. }
  547. void XTemplateSerializer::storeObject(RefVectorOf<XercesLocationPath>* const objToStore
  548. , XSerializeEngine& serEng)
  549. {
  550. if (serEng.needToStoreObject(objToStore))
  551. {
  552. int vectorLength = objToStore->size();
  553. serEng<<vectorLength;
  554. for ( int i = 0; i < vectorLength; i++)
  555. {
  556. XercesLocationPath* data = objToStore->elementAt(i);
  557. serEng<<data;
  558. }
  559. }
  560. }
  561. void XTemplateSerializer::loadObject(RefVectorOf<XercesLocationPath>** objToLoad
  562. , int initSize
  563. , bool toAdopt
  564. , XSerializeEngine& serEng)
  565. {
  566. if (serEng.needToLoadObject((void**)objToLoad))
  567. {
  568. if (!*objToLoad)
  569. {
  570. if (initSize < 0)
  571. initSize = 16;
  572. *objToLoad = new (serEng.getMemoryManager())
  573. RefVectorOf<XercesLocationPath>(
  574. initSize
  575. , toAdopt
  576. , serEng.getMemoryManager()
  577. );
  578. }
  579. serEng.registerObject(*objToLoad);
  580. int vectorLength = 0;
  581. serEng>>vectorLength;
  582. for ( int i = 0 ; i < vectorLength; i++)
  583. {
  584. XercesLocationPath* data;
  585. serEng>>data;
  586. (*objToLoad)->addElement(data);
  587. }
  588. }
  589. }
  590. void XTemplateSerializer::storeObject(RefVectorOf<XercesStep>* const objToStore
  591. , XSerializeEngine& serEng)
  592. {
  593. if (serEng.needToStoreObject(objToStore))
  594. {
  595. int vectorLength = objToStore->size();
  596. serEng<<vectorLength;
  597. for ( int i = 0; i < vectorLength; i++)
  598. {
  599. XercesStep* data = objToStore->elementAt(i);
  600. serEng<<data;
  601. }
  602. }
  603. }
  604. void XTemplateSerializer::loadObject(RefVectorOf<XercesStep>** objToLoad
  605. , int initSize
  606. , bool toAdopt
  607. , XSerializeEngine& serEng)
  608. {
  609. if (serEng.needToLoadObject((void**)objToLoad))
  610. {
  611. if (!*objToLoad)
  612. {
  613. if (initSize < 0)
  614. initSize = 16;
  615. *objToLoad = new (serEng.getMemoryManager())
  616. RefVectorOf<XercesStep>(
  617. initSize
  618. , toAdopt
  619. , serEng.getMemoryManager()
  620. );
  621. }
  622. serEng.registerObject(*objToLoad);
  623. int vectorLength = 0;
  624. serEng>>vectorLength;
  625. for ( int i = 0 ; i < vectorLength; i++)
  626. {
  627. XercesStep* data;
  628. serEng>>data;
  629. (*objToLoad)->addElement(data);
  630. }
  631. }
  632. }
  633. /**********************************************************
  634. *
  635. * RefHasbTableOf
  636. *
  637. * KVStringPair
  638. * XMLAttDef
  639. * DTDAttDef
  640. * ComplexTypeInfo
  641. * XercesGroupInfo
  642. * XercesAttGroupInfo
  643. * XMLRefInfo
  644. * DatatypeValidator
  645. * Grammar
  646. * XSAnnotation
  647. *
  648. ***********************************************************/
  649. void XTemplateSerializer::storeObject(RefHashTableOf<KVStringPair>* const objToStore
  650. , XSerializeEngine& serEng)
  651. {
  652. if (serEng.needToStoreObject(objToStore))
  653. {
  654. RefHashTableOfEnumerator<KVStringPair> e(objToStore);
  655. int itemNumber = 0;
  656. while (e.hasMoreElements())
  657. {
  658. e.nextElement();
  659. itemNumber++;
  660. }
  661. serEng<<itemNumber;
  662. e.Reset();
  663. while (e.hasMoreElements())
  664. {
  665. XMLCh* key = (XMLCh*) e.nextElementKey();
  666. serEng.writeString(key);
  667. KVStringPair* data = objToStore->get(key);
  668. serEng<<data;
  669. }
  670. }
  671. }
  672. void XTemplateSerializer::loadObject(RefHashTableOf<KVStringPair>** objToLoad
  673. , int initSize
  674. , bool toAdopt
  675. , XSerializeEngine& serEng)
  676. {
  677. if (serEng.needToLoadObject((void**)objToLoad))
  678. {
  679. if (!*objToLoad)
  680. {
  681. if (initSize < 0)
  682. initSize = 16;
  683. *objToLoad = new (serEng.getMemoryManager())
  684. RefHashTableOf<KVStringPair>(
  685. initSize
  686. , toAdopt
  687. , serEng.getMemoryManager()
  688. );
  689. }
  690. serEng.registerObject(*objToLoad);
  691. int itemNumber = 0;
  692. serEng>>itemNumber;
  693. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  694. {
  695. XMLCh* key;
  696. serEng.readString(key);
  697. KVStringPair* data;
  698. serEng>>data;
  699. (*objToLoad)->put((void*)key, data);
  700. }
  701. }
  702. }
  703. void XTemplateSerializer::storeObject(RefHashTableOf<XMLAttDef>* const objToStore
  704. , XSerializeEngine& serEng)
  705. {
  706. if (serEng.needToStoreObject(objToStore))
  707. {
  708. RefHashTableOfEnumerator<XMLAttDef> e(objToStore);
  709. int itemNumber = 0;
  710. while (e.hasMoreElements())
  711. {
  712. e.nextElement();
  713. itemNumber++;
  714. }
  715. serEng<<itemNumber;
  716. e.Reset();
  717. while (e.hasMoreElements())
  718. {
  719. XMLCh* key = (XMLCh*) e.nextElementKey();
  720. serEng.writeString(key);
  721. XMLAttDef* data = objToStore->get(key);
  722. serEng<<data;
  723. }
  724. }
  725. }
  726. void XTemplateSerializer::loadObject(RefHashTableOf<XMLAttDef>** objToLoad
  727. , int initSize
  728. , bool toAdopt
  729. , XSerializeEngine& serEng)
  730. {
  731. if (serEng.needToLoadObject((void**)objToLoad))
  732. {
  733. if (!*objToLoad)
  734. {
  735. if (initSize < 0)
  736. initSize = 16;
  737. *objToLoad = new (serEng.getMemoryManager())
  738. RefHashTableOf<XMLAttDef>(
  739. initSize
  740. , toAdopt
  741. , serEng.getMemoryManager()
  742. );
  743. }
  744. serEng.registerObject(*objToLoad);
  745. int itemNumber = 0;
  746. serEng>>itemNumber;
  747. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  748. {
  749. XMLCh* key;
  750. serEng.readString(key);
  751. //This is used solely by SchemaGrammar and by all means it must be
  752. //SchemaAttDef, ideally we may change it to RefHashTableOf<SchemaAttDef>
  753. //later on.
  754. //Affected files IGXMLScanner, SGXMLScanner, SchemaGrammar, TraverseSchema
  755. //XMLAttDef* data;
  756. SchemaAttDef* data;
  757. serEng>>data;
  758. (*objToLoad)->put((void*)key, data);
  759. }
  760. }
  761. }
  762. void XTemplateSerializer::storeObject(RefHashTableOf<DTDAttDef>* const objToStore
  763. , XSerializeEngine& serEng)
  764. {
  765. if (serEng.needToStoreObject(objToStore))
  766. {
  767. RefHashTableOfEnumerator<DTDAttDef> e(objToStore);
  768. int itemNumber = 0;
  769. while (e.hasMoreElements())
  770. {
  771. e.nextElement();
  772. itemNumber++;
  773. }
  774. serEng<<itemNumber;
  775. e.Reset();
  776. while (e.hasMoreElements())
  777. {
  778. XMLCh* key = (XMLCh*) e.nextElementKey();
  779. serEng.writeString(key);
  780. DTDAttDef* data = objToStore->get(key);
  781. serEng<<data;
  782. }
  783. }
  784. }
  785. void XTemplateSerializer::loadObject(RefHashTableOf<DTDAttDef>** objToLoad
  786. , int initSize
  787. , bool toAdopt
  788. , XSerializeEngine& serEng)
  789. {
  790. if (serEng.needToLoadObject((void**)objToLoad))
  791. {
  792. if (!*objToLoad)
  793. {
  794. if (initSize < 0)
  795. initSize = 16;
  796. *objToLoad = new (serEng.getMemoryManager())
  797. RefHashTableOf<DTDAttDef>(
  798. initSize
  799. , toAdopt
  800. , serEng.getMemoryManager()
  801. );
  802. }
  803. serEng.registerObject(*objToLoad);
  804. int itemNumber = 0;
  805. serEng>>itemNumber;
  806. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  807. {
  808. XMLCh* key;
  809. serEng.readString(key);
  810. DTDAttDef* data;
  811. serEng>>data;
  812. //key==data->getFullName()
  813. (*objToLoad)->put((void*)key, data);
  814. }
  815. }
  816. }
  817. void XTemplateSerializer::storeObject(RefHashTableOf<ComplexTypeInfo>* const objToStore
  818. , XSerializeEngine& serEng)
  819. {
  820. if (serEng.needToStoreObject(objToStore))
  821. {
  822. RefHashTableOfEnumerator<ComplexTypeInfo> e(objToStore);
  823. int itemNumber = 0;
  824. while (e.hasMoreElements())
  825. {
  826. e.nextElement();
  827. itemNumber++;
  828. }
  829. serEng<<itemNumber;
  830. e.Reset();
  831. while (e.hasMoreElements())
  832. {
  833. XMLCh* key = (XMLCh*) e.nextElementKey();
  834. serEng.writeString(key);
  835. ComplexTypeInfo* data = objToStore->get(key);
  836. serEng<<data;
  837. }
  838. }
  839. }
  840. void XTemplateSerializer::loadObject(RefHashTableOf<ComplexTypeInfo>** objToLoad
  841. , int initSize
  842. , bool toAdopt
  843. , XSerializeEngine& serEng)
  844. {
  845. if (serEng.needToLoadObject((void**)objToLoad))
  846. {
  847. if (!*objToLoad)
  848. {
  849. if (initSize < 0)
  850. initSize = 16;
  851. *objToLoad = new (serEng.getMemoryManager())
  852. RefHashTableOf<ComplexTypeInfo>(
  853. initSize
  854. , toAdopt
  855. , serEng.getMemoryManager()
  856. );
  857. }
  858. serEng.registerObject(*objToLoad);
  859. int itemNumber = 0;
  860. serEng>>itemNumber;
  861. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  862. {
  863. XMLCh* key;
  864. serEng.readString(key);
  865. ComplexTypeInfo* data;
  866. serEng>>data;
  867. //key==data->getTypeName()
  868. (*objToLoad)->put((void*)key, data);
  869. }
  870. }
  871. }
  872. void XTemplateSerializer::storeObject(RefHashTableOf<XercesGroupInfo>* const objToStore
  873. , XSerializeEngine& serEng)
  874. {
  875. if (serEng.needToStoreObject(objToStore))
  876. {
  877. RefHashTableOfEnumerator<XercesGroupInfo> e(objToStore);
  878. int itemNumber = 0;
  879. while (e.hasMoreElements())
  880. {
  881. e.nextElement();
  882. itemNumber++;
  883. }
  884. serEng<<itemNumber;
  885. e.Reset();
  886. while (e.hasMoreElements())
  887. {
  888. XMLCh* key = (XMLCh*) e.nextElementKey();
  889. serEng.writeString(key);
  890. XercesGroupInfo* data = objToStore->get(key);
  891. serEng<<data;
  892. }
  893. }
  894. }
  895. void XTemplateSerializer::loadObject(RefHashTableOf<XercesGroupInfo>** objToLoad
  896. , int initSize
  897. , bool toAdopt
  898. , XSerializeEngine& serEng)
  899. {
  900. if (serEng.needToLoadObject((void**)objToLoad))
  901. {
  902. if (!*objToLoad)
  903. {
  904. if (initSize < 0)
  905. initSize = 16;
  906. *objToLoad = new (serEng.getMemoryManager())
  907. RefHashTableOf<XercesGroupInfo>(
  908. initSize
  909. , toAdopt
  910. , serEng.getMemoryManager()
  911. );
  912. }
  913. serEng.registerObject(*objToLoad);
  914. int itemNumber = 0;
  915. serEng>>itemNumber;
  916. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  917. {
  918. XMLCh* key;
  919. serEng.readString(key);
  920. XercesGroupInfo* data;
  921. serEng>>data;
  922. (*objToLoad)->put((void*)key, data);
  923. }
  924. }
  925. }
  926. void XTemplateSerializer::storeObject(RefHashTableOf<XercesAttGroupInfo>* const objToStore
  927. , XSerializeEngine& serEng)
  928. {
  929. if (serEng.needToStoreObject(objToStore))
  930. {
  931. RefHashTableOfEnumerator<XercesAttGroupInfo> e(objToStore);
  932. int itemNumber = 0;
  933. while (e.hasMoreElements())
  934. {
  935. e.nextElement();
  936. itemNumber++;
  937. }
  938. serEng<<itemNumber;
  939. e.Reset();
  940. while (e.hasMoreElements())
  941. {
  942. XMLCh* key = (XMLCh*) e.nextElementKey();
  943. serEng.writeString(key);
  944. XercesAttGroupInfo* data = objToStore->get(key);
  945. serEng<<data;
  946. }
  947. }
  948. }
  949. void XTemplateSerializer::loadObject(RefHashTableOf<XercesAttGroupInfo>** objToLoad
  950. , int initSize
  951. , bool toAdopt
  952. , XSerializeEngine& serEng)
  953. {
  954. if (serEng.needToLoadObject((void**)objToLoad))
  955. {
  956. if (!*objToLoad)
  957. {
  958. if (initSize < 0)
  959. initSize = 16;
  960. *objToLoad = new (serEng.getMemoryManager())
  961. RefHashTableOf<XercesAttGroupInfo>(
  962. initSize
  963. , toAdopt
  964. , serEng.getMemoryManager()
  965. );
  966. }
  967. serEng.registerObject(*objToLoad);
  968. int itemNumber = 0;
  969. serEng>>itemNumber;
  970. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  971. {
  972. XMLCh* key;
  973. serEng.readString(key);
  974. XercesAttGroupInfo* data;
  975. serEng>>data;
  976. (*objToLoad)->put((void*)key, data);
  977. }
  978. }
  979. }
  980. void XTemplateSerializer::storeObject(RefHashTableOf<XMLRefInfo>* const objToStore
  981. , XSerializeEngine& serEng)
  982. {
  983. if (serEng.needToStoreObject(objToStore))
  984. {
  985. RefHashTableOfEnumerator<XMLRefInfo> e(objToStore);
  986. int itemNumber = 0;
  987. while (e.hasMoreElements())
  988. {
  989. e.nextElement();
  990. itemNumber++;
  991. }
  992. serEng<<itemNumber;
  993. e.Reset();
  994. while (e.hasMoreElements())
  995. {
  996. XMLCh* key = (XMLCh*) e.nextElementKey();
  997. serEng.writeString(key);
  998. XMLRefInfo* data = objToStore->get(key);
  999. serEng<<data;
  1000. }
  1001. }
  1002. }
  1003. void XTemplateSerializer::loadObject(RefHashTableOf<XMLRefInfo>** objToLoad
  1004. , int initSize
  1005. , bool toAdopt
  1006. , XSerializeEngine& serEng)
  1007. {
  1008. if (serEng.needToLoadObject((void**)objToLoad))
  1009. {
  1010. if (!*objToLoad)
  1011. {
  1012. if (initSize < 0)
  1013. initSize = 16;
  1014. *objToLoad = new (serEng.getMemoryManager())
  1015. RefHashTableOf<XMLRefInfo>(
  1016. initSize
  1017. , toAdopt
  1018. , serEng.getMemoryManager()
  1019. );
  1020. }
  1021. serEng.registerObject(*objToLoad);
  1022. int itemNumber = 0;
  1023. serEng>>itemNumber;
  1024. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  1025. {
  1026. XMLCh* key;
  1027. serEng.readString(key);
  1028. XMLRefInfo* data;
  1029. serEng>>data;
  1030. (*objToLoad)->put((void*)key, data);
  1031. }
  1032. }
  1033. }
  1034. void XTemplateSerializer::storeObject(RefHashTableOf<DatatypeValidator>* const objToStore
  1035. , XSerializeEngine& serEng)
  1036. {
  1037. if (serEng.needToStoreObject(objToStore))
  1038. {
  1039. RefHashTableOfEnumerator<DatatypeValidator> e(objToStore);
  1040. int itemNumber = 0;
  1041. while (e.hasMoreElements())
  1042. {
  1043. e.nextElement();
  1044. itemNumber++;
  1045. }
  1046. serEng<<itemNumber;
  1047. e.Reset();
  1048. while (e.hasMoreElements())
  1049. {
  1050. XMLCh* key = (XMLCh*) e.nextElementKey();
  1051. serEng.writeString(key);
  1052. DatatypeValidator* data = objToStore->get(key);
  1053. DatatypeValidator::storeDV(serEng, data);
  1054. }
  1055. }
  1056. }
  1057. void XTemplateSerializer::loadObject(RefHashTableOf<DatatypeValidator>** objToLoad
  1058. , int initSize
  1059. , bool toAdopt
  1060. , XSerializeEngine& serEng)
  1061. {
  1062. if (serEng.needToLoadObject((void**)objToLoad))
  1063. {
  1064. if (!*objToLoad)
  1065. {
  1066. if (initSize < 0)
  1067. initSize = 16;
  1068. *objToLoad = new (serEng.getMemoryManager())
  1069. RefHashTableOf<DatatypeValidator>(
  1070. initSize
  1071. , toAdopt
  1072. , serEng.getMemoryManager()
  1073. );
  1074. }
  1075. serEng.registerObject(*objToLoad);
  1076. int itemNumber = 0;
  1077. serEng>>itemNumber;
  1078. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  1079. {
  1080. XMLCh* key;
  1081. serEng.readString(key);
  1082. DatatypeValidator* data;
  1083. data = DatatypeValidator::loadDV(serEng);
  1084. (*objToLoad)->put((void*)key, data);
  1085. }
  1086. }
  1087. }
  1088. void XTemplateSerializer::storeObject(RefHashTableOf<Grammar>* const objToStore
  1089. , XSerializeEngine& serEng)
  1090. {
  1091. if (serEng.needToStoreObject(objToStore))
  1092. {
  1093. RefHashTableOfEnumerator<Grammar> e(objToStore);
  1094. int itemNumber = 0;
  1095. while (e.hasMoreElements())
  1096. {
  1097. e.nextElement();
  1098. itemNumber++;
  1099. }
  1100. serEng<<itemNumber;
  1101. e.Reset();
  1102. while (e.hasMoreElements())
  1103. {
  1104. XMLCh* key = (XMLCh*) e.nextElementKey();
  1105. serEng.writeString(key);
  1106. Grammar* data = objToStore->get(key);
  1107. Grammar::storeGrammar(serEng, data);
  1108. }
  1109. }
  1110. }
  1111. void XTemplateSerializer::loadObject(RefHashTableOf<Grammar>** objToLoad
  1112. , int initSize
  1113. , bool toAdopt
  1114. , XSerializeEngine& serEng)
  1115. {
  1116. if (serEng.needToLoadObject((void**)objToLoad))
  1117. {
  1118. if (!*objToLoad)
  1119. {
  1120. if (initSize < 0)
  1121. initSize = 16;
  1122. *objToLoad = new (serEng.getMemoryManager())
  1123. RefHashTableOf<Grammar>(
  1124. initSize
  1125. , toAdopt
  1126. , serEng.getMemoryManager()
  1127. );
  1128. }
  1129. serEng.registerObject(*objToLoad);
  1130. int itemNumber = 0;
  1131. serEng>>itemNumber;
  1132. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  1133. {
  1134. XMLCh* key;
  1135. serEng.readString(key);
  1136. Grammar* data;
  1137. data = Grammar::loadGrammar(serEng);
  1138. (*objToLoad)->put((void*)key, data);
  1139. }
  1140. }
  1141. }
  1142. void XTemplateSerializer::storeObject(RefHashTableOf<XSAnnotation>* const objToStore
  1143. , XSerializeEngine& serEng)
  1144. {
  1145. if (serEng.needToStoreObject(objToStore))
  1146. {
  1147. RefHashTableOfEnumerator<XSAnnotation> e(objToStore);
  1148. ValueVectorOf<XSerializeEngine::XSerializedObjectId_t> ids(16, serEng.getMemoryManager());
  1149. ValueVectorOf<void*> keys(16, serEng.getMemoryManager());
  1150. while (e.hasMoreElements())
  1151. {
  1152. void* key = e.nextElementKey();
  1153. XSerializeEngine::XSerializedObjectId_t keyId = serEng.lookupStorePool(key);
  1154. if (keyId)
  1155. {
  1156. ids.addElement(keyId);
  1157. keys.addElement(key);
  1158. }
  1159. }
  1160. int itemNumber = ids.size();
  1161. serEng<<itemNumber;
  1162. for (int i=0; i<itemNumber; i++)
  1163. {
  1164. XSerializeEngine::XSerializedObjectId_t keyId = ids.elementAt(i);
  1165. XSAnnotation* data = objToStore->get(keys.elementAt(i));
  1166. serEng<<keyId;
  1167. serEng<<data;
  1168. }
  1169. }
  1170. }
  1171. void XTemplateSerializer::loadObject(RefHashTableOf<XSAnnotation>** objToLoad
  1172. , int initSize
  1173. , bool toAdopt
  1174. , XSerializeEngine& serEng)
  1175. {
  1176. if (serEng.needToLoadObject((void**)objToLoad))
  1177. {
  1178. if (!*objToLoad)
  1179. {
  1180. if (initSize < 0)
  1181. initSize = 29;
  1182. *objToLoad = new (serEng.getMemoryManager())
  1183. RefHashTableOf<XSAnnotation>(
  1184. initSize
  1185. , toAdopt
  1186. , new (serEng.getMemoryManager()) HashPtr()
  1187. , serEng.getMemoryManager()
  1188. );
  1189. }
  1190. serEng.registerObject(*objToLoad);
  1191. int itemNumber = 0;
  1192. serEng>>itemNumber;
  1193. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  1194. {
  1195. XSerializeEngine::XSerializedObjectId_t keyId = 0;
  1196. serEng>>keyId;
  1197. void* key = serEng.lookupLoadPool(keyId);
  1198. XSAnnotation* data;
  1199. serEng>>data;
  1200. (*objToLoad)->put(key, data);
  1201. }
  1202. }
  1203. }
  1204. /**********************************************************
  1205. *
  1206. * RefHash2KeysTableOf
  1207. *
  1208. * SchemaAttDef
  1209. * ElemVector
  1210. *
  1211. ***********************************************************/
  1212. void XTemplateSerializer::storeObject(RefHash2KeysTableOf<SchemaAttDef>* const objToStore
  1213. , XSerializeEngine& serEng)
  1214. {
  1215. if (serEng.needToStoreObject(objToStore))
  1216. {
  1217. int itemNumber = 0;
  1218. RefHash2KeysTableOfEnumerator<SchemaAttDef> e(objToStore);
  1219. while (e.hasMoreElements())
  1220. {
  1221. e.nextElement();
  1222. itemNumber++;
  1223. }
  1224. serEng<<itemNumber;
  1225. e.Reset();
  1226. while (e.hasMoreElements())
  1227. {
  1228. XMLCh* key1;
  1229. int key2;
  1230. e.nextElementKey((void*&)key1, key2);
  1231. serEng.writeString(key1);
  1232. serEng<<key2;
  1233. SchemaAttDef* data = objToStore->get(key1, key2);
  1234. serEng<<data;
  1235. }
  1236. }
  1237. }
  1238. void XTemplateSerializer::loadObject(RefHash2KeysTableOf<SchemaAttDef>** objToLoad
  1239. , int initSize
  1240. , bool toAdopt
  1241. , XSerializeEngine& serEng)
  1242. {
  1243. if (serEng.needToLoadObject((void**)objToLoad))
  1244. {
  1245. if (!*objToLoad)
  1246. {
  1247. if (initSize < 0)
  1248. initSize = 16;
  1249. *objToLoad = new (serEng.getMemoryManager())
  1250. RefHash2KeysTableOf<SchemaAttDef>(
  1251. initSize
  1252. , toAdopt
  1253. , serEng.getMemoryManager()
  1254. );
  1255. }
  1256. serEng.registerObject(*objToLoad);
  1257. int itemNumber = 0;
  1258. serEng>>itemNumber;
  1259. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  1260. {
  1261. XMLCh* key1;
  1262. serEng.readString(key1);
  1263. int key2;
  1264. serEng>>key2;
  1265. SchemaAttDef* data;
  1266. serEng>>data;
  1267. //key1==data->getAttName()->getLocalPart()
  1268. //key2==data->getId()
  1269. (*objToLoad)->put((void*)key1, key2, data);
  1270. }
  1271. }
  1272. }
  1273. void XTemplateSerializer::storeObject(RefHash2KeysTableOf<ElemVector>* const objToStore
  1274. , XSerializeEngine& serEng)
  1275. {
  1276. if (serEng.needToStoreObject(objToStore))
  1277. {
  1278. int itemNumber = 0;
  1279. RefHash2KeysTableOfEnumerator<ElemVector> e(objToStore);
  1280. while (e.hasMoreElements())
  1281. {
  1282. e.nextElement();
  1283. itemNumber++;
  1284. }
  1285. serEng<<itemNumber;
  1286. e.Reset();
  1287. while (e.hasMoreElements())
  1288. {
  1289. XMLCh* key1;
  1290. int key2;
  1291. e.nextElementKey((void*&)key1, key2);
  1292. serEng.writeString(key1);
  1293. serEng<<key2;
  1294. ElemVector* data = objToStore->get(key1, key2);
  1295. storeObject(data, serEng);
  1296. }
  1297. }
  1298. }
  1299. void XTemplateSerializer::loadObject(RefHash2KeysTableOf<ElemVector>** objToLoad
  1300. , int initSize
  1301. , bool toAdopt
  1302. , XSerializeEngine& serEng)
  1303. {
  1304. if (serEng.needToLoadObject((void**)objToLoad))
  1305. {
  1306. if (!*objToLoad)
  1307. {
  1308. if (initSize < 0)
  1309. initSize = 16;
  1310. *objToLoad = new (serEng.getMemoryManager())
  1311. RefHash2KeysTableOf<ElemVector>(
  1312. initSize
  1313. , toAdopt
  1314. , serEng.getMemoryManager()
  1315. );
  1316. }
  1317. serEng.registerObject(*objToLoad);
  1318. int itemNumber = 0;
  1319. serEng>>itemNumber;
  1320. for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  1321. {
  1322. XMLCh* key1;
  1323. s

Large files files are truncated, but you can click here to view the full file