diff options
author | Matthew Newhook <matthew@zeroc.com> | 2002-01-30 16:29:24 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2002-01-30 16:29:24 +0000 |
commit | 401ad2642076f9896852eaa5de8bfa0d3a07803f (patch) | |
tree | 526620de98b9807eea7876afa9d173a1aa9ce849 /cpp | |
parent | Start migrating Freeze to use the XML stream. (diff) | |
download | ice-401ad2642076f9896852eaa5de8bfa0d3a07803f.tar.bz2 ice-401ad2642076f9896852eaa5de8bfa0d3a07803f.tar.xz ice-401ad2642076f9896852eaa5de8bfa0d3a07803f.zip |
Freeze updates.
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/include/Freeze/Map.h | 18 | ||||
-rw-r--r-- | cpp/src/slice2freeze/Main.cpp | 12 |
2 files changed, 16 insertions, 14 deletions
diff --git a/cpp/include/Freeze/Map.h b/cpp/include/Freeze/Map.h index 27111459b42..1b0eef3af9e 100644 --- a/cpp/include/Freeze/Map.h +++ b/cpp/include/Freeze/Map.h @@ -161,7 +161,8 @@ public: // void set(const mapped_type& value) { - Freeze::Value v = ValueCodec::write(value, _db->getCommunicator()); + Freeze::Value v; + ValueCodec::write(value, v, _db->getCommunicator()); _cursor->set(v); } @@ -597,8 +598,8 @@ public: Freeze::Key k; Freeze::Value v; - k = KeyCodec::write(key.first, communicator); - v = ValueCodec::write(key.second, communicator); + KeyCodec::write(key.first, k, communicator); + ValueCodec::write(key.second, v, communicator); _db->put(k, v); DBCursorPtr cursor = _db->getCursorAtKey(k); @@ -612,8 +613,8 @@ public: Freeze::Key k; Freeze::Value v; - k = KeyCodec::write(key.first, communicator); - v = ValueCodec::write(key.second, communicator); + KeyCodec::write(key.first, k, communicator); + ValueCodec::write(key.second, v, communicator); DBCursorPtr cursor; bool inserted; @@ -675,7 +676,8 @@ public: size_type erase(const key_type& key) { - Freeze::Key k = KeyCodec::write(key, _db->getCommunicator()); + Freeze::Key k; + KeyCodec::write(key, k, _db->getCommunicator()); try { @@ -706,7 +708,7 @@ public: iterator find(const key_type& key) { Freeze::Key k; - k = KeyCodec::write(key, _db->getCommunicator()); + KeyCodec::write(key, k, _db->getCommunicator()); try { @@ -725,7 +727,7 @@ public: const_iterator find(const key_type& key) const { Freeze::Key k; - k = KeyCodec::write(key, _db->getCommunicator()); + KeyCodec::write(key, k, _db->getCommunicator()); try { diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp index 32e6ccb34fc..47313378f25 100644 --- a/cpp/src/slice2freeze/Main.cpp +++ b/cpp/src/slice2freeze/Main.cpp @@ -86,8 +86,8 @@ writeCodecH(const TypePtr& type, const string& name, const string& freezeType, O H << sp << nl << "public:"; H << sp; H.inc(); - H << nl << "static Freeze::" << freezeType << " write(" << inputTypeToString(type) - << ", const ::Ice::CommunicatorPtr&);"; + H << nl << "static void write(" << inputTypeToString(type) << ", Freeze::" << freezeType + << "&, const ::Ice::CommunicatorPtr&);"; H << nl << "static void read(" << typeToString(type) << "&, const Freeze::" << freezeType << "&, " << "const ::Ice::CommunicatorPtr&);"; H << eb << ';'; @@ -100,14 +100,14 @@ writeCodecC(const TypePtr& type, const string& name, const string& freezeType, O tagName += freezeType; tagName += "\""; - C << sp << nl << "Freeze::" << freezeType << nl << name << "::write(" << inputTypeToString(type) << " v, " - << "const ::Ice::CommunicatorPtr& communicator)"; + C << sp << nl << "void" << nl << name << "::write(" << inputTypeToString(type) << " v, " + << "Freeze::" << freezeType << "& bytes, const ::Ice::CommunicatorPtr& communicator)"; C << sb; C << nl << "::std::ostringstream os;"; C << nl << "::Ice::StreamPtr stream = new ::IceXML::StreamI(communicator, os);"; writeGenericMarshalUnmarshalCode(C, type, "v", true, tagName, "stream", true); - - C << nl << "return Freeze::" << freezeType << "(os.str().begin(), os.str().end());"; + C << nl << "bytes.resize(os.str().size());"; + C << nl << "memcpy(&bytes[0], os.str().data(), os.str().size());"; C << eb; C << sp << nl << "void" << nl << name << "::read(" << typeToString(type) << "& v, " |