summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-01-30 16:29:24 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-01-30 16:29:24 +0000
commit401ad2642076f9896852eaa5de8bfa0d3a07803f (patch)
tree526620de98b9807eea7876afa9d173a1aa9ce849 /cpp
parentStart migrating Freeze to use the XML stream. (diff)
downloadice-401ad2642076f9896852eaa5de8bfa0d3a07803f.tar.bz2
ice-401ad2642076f9896852eaa5de8bfa0d3a07803f.tar.xz
ice-401ad2642076f9896852eaa5de8bfa0d3a07803f.zip
Freeze updates.
Diffstat (limited to 'cpp')
-rw-r--r--cpp/include/Freeze/Map.h18
-rw-r--r--cpp/src/slice2freeze/Main.cpp12
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, "