summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Object.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2012-10-13 16:50:07 -0400
committerBernard Normier <bernard@zeroc.com>2012-10-13 16:50:07 -0400
commit210d46ee60f8f9821ec21d99fe2a6a87ec9e7de5 (patch)
tree11d66335012d44932004877760271f95305be186 /cpp/src/Ice/Object.cpp
parent.NET CF fixes (diff)
downloadice-210d46ee60f8f9821ec21d99fe2a6a87ec9e7de5.tar.bz2
ice-210d46ee60f8f9821ec21d99fe2a6a87ec9e7de5.tar.xz
ice-210d46ee60f8f9821ec21d99fe2a6a87ec9e7de5.zip
Better generated __read and __write for classes and exceptions (C++, Java and C#)
Diffstat (limited to 'cpp/src/Ice/Object.cpp')
-rw-r--r--cpp/src/Ice/Object.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp
index 096bf434b5f..93256b730d0 100644
--- a/cpp/src/Ice/Object.cpp
+++ b/cpp/src/Ice/Object.cpp
@@ -248,6 +248,50 @@ Ice::Object::__collocDispatch(IceInternal::Direct& request)
return request.run(this);
}
+void
+Ice::Object::__write(IceInternal::BasicStream* os) const
+{
+ os->startWriteObject(0);
+ __writeImpl(os);
+ os->endWriteObject();
+}
+
+void
+Ice::Object::__read(IceInternal::BasicStream* is)
+{
+ is->startReadObject();
+ __readImpl(is);
+ is->endReadObject(false);
+}
+
+void
+Ice::Object::__write(const OutputStreamPtr& os) const
+{
+ os->startObject(0);
+ __writeImpl(os);
+ os->endObject();
+}
+
+void
+Ice::Object::__read(const InputStreamPtr& is)
+{
+ is->startObject();
+ __readImpl(is);
+ is->endObject(false);
+}
+
+void
+Ice::Object::__writeImpl(const OutputStreamPtr&) const
+{
+ throw MarshalException(__FILE__, __LINE__, "class was not generated with stream support");
+}
+
+void
+Ice::Object::__readImpl(const InputStreamPtr&)
+{
+ throw MarshalException(__FILE__, __LINE__, "class was not generated with stream support");
+}
+
namespace
{
@@ -401,6 +445,7 @@ Ice::BlobjectArrayAsync::__dispatch(Incoming& in, const Current& current)
}
return DispatchAsync;
}
+
void
Ice::ice_writeObject(const OutputStreamPtr& out, const ObjectPtr& p)
{