summaryrefslogtreecommitdiff
path: root/cpp/src/slice2freezej/Main.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2003-10-20 17:15:20 +0000
committerMark Spruiell <mes@zeroc.com>2003-10-20 17:15:20 +0000
commita2320d3f0936d0a3fb6526ca604dbe2ee5e66221 (patch)
tree1712a0b42f4918b9220ec1aa3466891aebe7d11c /cpp/src/slice2freezej/Main.cpp
parentfile gcC.dsp was initially added on branch gc. (diff)
downloadice-a2320d3f0936d0a3fb6526ca604dbe2ee5e66221.tar.bz2
ice-a2320d3f0936d0a3fb6526ca604dbe2ee5e66221.tar.xz
ice-a2320d3f0936d0a3fb6526ca604dbe2ee5e66221.zip
encapsulate database values
Diffstat (limited to 'cpp/src/slice2freezej/Main.cpp')
-rw-r--r--cpp/src/slice2freezej/Main.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/cpp/src/slice2freezej/Main.cpp b/cpp/src/slice2freezej/Main.cpp
index 72faa7cda5e..afc6a19f964 100644
--- a/cpp/src/slice2freezej/Main.cpp
+++ b/cpp/src/slice2freezej/Main.cpp
@@ -124,16 +124,22 @@ FreezeGenerator::generate(UnitPtr& u, const Dict& dict)
{
string keyValue;
TypePtr type;
+ bool encaps;
if(i == 0)
{
keyValue = "Key";
type = keyType;
+ //
+ // Do not encapsulate keys.
+ //
+ encaps = false;
}
else
{
keyValue = "Value";
type = valueType;
+ encaps = true;
}
string typeS, valS;
@@ -207,12 +213,20 @@ FreezeGenerator::generate(UnitPtr& u, const Dict& dict)
<< "new IceInternal.BasicStream(Ice.Util.getInstance(communicator));";
out << nl << "try";
out << sb;
+ if(encaps)
+ {
+ out << nl << "__os.startWriteEncaps();";
+ }
iter = 0;
writeMarshalUnmarshalCode(out, "", type, valS, true, iter, false);
if(type->usesClasses())
{
out << nl << "__os.writePendingObjects();";
}
+ if(encaps)
+ {
+ out << nl << "__os.endWriteEncaps();";
+ }
out << nl << "java.nio.ByteBuffer __buf = __os.prepareWrite();";
out << nl << "byte[] __r = new byte[__buf.limit()];";
out << nl << "__buf.get(__r);";
@@ -239,6 +253,10 @@ FreezeGenerator::generate(UnitPtr& u, const Dict& dict)
out << nl << "__buf.position(0);";
out << nl << "__buf.put(b);";
out << nl << "__buf.position(0);";
+ if(encaps)
+ {
+ out << nl << "__is.startReadEncaps();";
+ }
iter = 0;
list<string> metaData;
string patchParams;
@@ -308,6 +326,10 @@ FreezeGenerator::generate(UnitPtr& u, const Dict& dict)
{
out << nl << "__is.readPendingObjects();";
}
+ if(encaps)
+ {
+ out << nl << "__is.endReadEncaps();";
+ }
if((b && b->kind() == Builtin::KindObject) || ClassDeclPtr::dynamicCast(type))
{
out << nl << "return __p.value;";