peiyongz 2003/09/25 15:23:25 Modified: c/src/xercesc/util KVStringPair.cpp KVStringPair.hpp XMLUri.cpp XMLUri.hpp Log: Implementation of Serialization/Deserialization Revision Changes Path 1.5 +27 -0 xml-xerces/c/src/xercesc/util/KVStringPair.cpp Index: KVStringPair.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/KVStringPair.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- KVStringPair.cpp 16 May 2003 06:01:52 -0000 1.4 +++ KVStringPair.cpp 25 Sep 2003 22:23:25 -0000 1.5 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/09/25 22:23:25 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.4 2003/05/16 06:01:52 knoaman * Partial implementation of the configurable memory manager. * @@ -205,6 +208,30 @@ { setKey(newKey); setValue(newValue); +} + +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(KVStringPair) + +void KVStringPair::serialize(XSerializeEngine& serEng) +{ + + if (serEng.isStoring()) + { + + serEng.writeString(fKey, fKeyAllocSize, XSerializeEngine::toWriteBufferLen); + serEng.writeString(fValue, fValueAllocSize, XSerializeEngine::toWriteBufferLen); + } + else + { + int dataLen = 0; + serEng.readString(fKey, (int&)fKeyAllocSize, dataLen, XSerializeEngine::toReadBufferLen); + serEng.readString(fValue, (int&)fValueAllocSize, dataLen, XSerializeEngine::toReadBufferLen); + } + } XERCES_CPP_NAMESPACE_END 1.6 +11 -1 xml-xerces/c/src/xercesc/util/KVStringPair.hpp Index: KVStringPair.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/KVStringPair.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- KVStringPair.hpp 18 May 2003 14:02:05 -0000 1.5 +++ KVStringPair.hpp 25 Sep 2003 22:23:25 -0000 1.6 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.6 2003/09/25 22:23:25 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.5 2003/05/18 14:02:05 knoaman * Memory manager implementation: pass per instance manager. * @@ -128,6 +131,8 @@ #include <xercesc/util/XMemory.hpp> #include <xercesc/util/PlatformUtils.hpp> +#include <xercesc/internal/XSerializable.hpp> + XERCES_CPP_NAMESPACE_BEGIN // @@ -135,7 +140,7 @@ // a pair of strings which represent a 'key=value' type mapping. It works // only in terms of XMLCh type raw strings. // -class XMLUTIL_EXPORT KVStringPair : public XMemory +class XMLUTIL_EXPORT KVStringPair : public XSerializable, public XMemory { public: // ----------------------------------------------------------------------- @@ -174,6 +179,11 @@ , const XMLCh* const newValue ); + + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(KVStringPair) private : // ----------------------------------------------------------------------- 1.15 +53 -1 xml-xerces/c/src/xercesc/util/XMLUri.cpp Index: XMLUri.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUri.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- XMLUri.cpp 25 Jul 2003 10:15:16 -0000 1.14 +++ XMLUri.cpp 25 Sep 2003 22:23:25 -0000 1.15 @@ -1813,5 +1813,57 @@ *outPtr = 0; } +/*** + * Support for Serialization/De-serialization + ***/ + +IMPL_XSERIALIZABLE_TOCREATE(XMLUri) + +void XMLUri::serialize(XSerializeEngine& serEng) +{ + + if (serEng.isStoring()) + { + + serEng.writeString(fScheme); + serEng.writeString(fUserInfo); + serEng.writeString(fHost); + + serEng<<fPort; + + serEng.writeString(fPath); + serEng.writeString(fQueryString); + serEng.writeString(fFragment); + serEng.writeString(fURIText); + } + else + { + serEng.readString(fScheme); + serEng.readString(fUserInfo); + serEng.readString(fHost); + + serEng>>fPort; + + serEng.readString(fPath); + serEng.readString(fQueryString); + serEng.readString(fFragment); + serEng.readString(fURIText); + } + +} + +XMLUri::XMLUri(MemoryManager* const manager) +: fScheme(0) +, fUserInfo(0) +, fHost(0) +, fPort(-1) +, fPath(0) +, fQueryString(0) +, fFragment(0) +, fURIText(0) +, fMemoryManager(manager) +{ +} + XERCES_CPP_NAMESPACE_END 1.11 +36 -2 xml-xerces/c/src/xercesc/util/XMLUri.hpp Index: XMLUri.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUri.hpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- XMLUri.hpp 25 Jul 2003 10:15:16 -0000 1.10 +++ XMLUri.hpp 25 Sep 2003 22:23:25 -0000 1.11 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.11 2003/09/25 22:23:25 peiyongz + * Implementation of Serialization/Deserialization + * * Revision 1.10 2003/07/25 10:15:16 gareth * Patch by Michael Glavassevich * @@ -128,6 +131,8 @@ #include <xercesc/util/XMemory.hpp> #include <xercesc/util/XMLString.hpp> +#include <xercesc/internal/XSerializable.hpp> + XERCES_CPP_NAMESPACE_BEGIN /* @@ -139,7 +144,7 @@ * */ - class XMLUTIL_EXPORT XMLUri : public XMemory + class XMLUTIL_EXPORT XMLUri : public XSerializable, public XMemory { public: @@ -361,6 +366,12 @@ */ static bool isURIString(const XMLCh* const uric); + /*** + * Support for Serialization/De-serialization + ***/ + DECL_XSERIALIZABLE(XMLUri) + + XMLUri(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); private:
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]