diff options
author | Bernard Normier <bernard@zeroc.com> | 2012-10-13 16:50:07 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2012-10-13 16:50:07 -0400 |
commit | 210d46ee60f8f9821ec21d99fe2a6a87ec9e7de5 (patch) | |
tree | 11d66335012d44932004877760271f95305be186 /cpp/src/Ice/Object.cpp | |
parent | .NET CF fixes (diff) | |
download | ice-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.cpp | 45 |
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) { |