peiyongz 2003/10/17 14:13:05 Modified: c/src/xercesc/validators/datatype DatatypeValidatorFactory.cpp DatatypeValidatorFactory.hpp Log: Implement Serialization/Deserialization Revision Changes Path 1.17 +33 -0 xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp Index: DatatypeValidatorFactory.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- DatatypeValidatorFactory.cpp 18 May 2003 14:02:07 -0000 1.16 +++ DatatypeValidatorFactory.cpp 17 Oct 2003 21:13:05 -0000 1.17 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.17 2003/10/17 21:13:05 peiyongz + * Implement Serialization/Deserialization + * * Revision 1.16 2003/05/18 14:02:07 knoaman * Memory manager implementation: pass per instance manager. * @@ -227,6 +230,8 @@ #include <xercesc/util/PlatformUtils.hpp> #include <xercesc/util/XMLRegisterCleanup.hpp> +#include <xercesc/internal/XTemplateSerializer.hpp> + XERCES_CPP_NAMESPACE_BEGIN @@ -878,6 +883,34 @@ } return datatypeValidator; +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(DatatypeValidatorFactory) + +void DatatypeValidatorFactory::serialize(XSerializeEngine& serEng) +{ + + // Need not to serialize static data member, fBuiltInRegistry + + if (serEng.isStoring()) + { + /*** + * Serialize RefHashTableOf<DatatypeValidator> + ***/ + XTemplateSerializer::storeObject(fUserDefinedRegistry, serEng); + } + else + { + /*** + * Deserialize RefHashTableOf<DatatypeValidator> + ***/ + XTemplateSerializer::loadObject(&fUserDefinedRegistry, 29, true, serEng); + } + } XERCES_CPP_NAMESPACE_END 1.11 +9 -2 xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp Index: DatatypeValidatorFactory.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- DatatypeValidatorFactory.hpp 22 May 2003 02:10:52 -0000 1.10 +++ DatatypeValidatorFactory.hpp 17 Oct 2003 21:13:05 -0000 1.11 @@ -87,6 +87,8 @@ #include <xercesc/validators/datatype/DatatypeValidator.hpp> #include <xercesc/util/RefVectorOf.hpp> +#include <xercesc/internal/XSerializable.hpp> + XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- @@ -97,7 +99,7 @@ typedef RefArrayVectorOf<XMLCh> XMLChRefVector; -class VALIDATORS_EXPORT DatatypeValidatorFactory : public XMemory +class VALIDATORS_EXPORT DatatypeValidatorFactory : public XSerializable, public XMemory { public: @@ -236,6 +238,11 @@ // Notification that lazy data has been deleted // ----------------------------------------------------------------------- static void reinitRegistry(); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(DatatypeValidatorFactory) private: // -----------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]