diff options
author | Mark Spruiell <mes@zeroc.com> | 2007-11-05 12:19:49 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2007-11-05 12:19:49 -0800 |
commit | 3c8924663df8629b33c2ddd38907c4bf2eeb83cd (patch) | |
tree | 83b63f2396201019163d140555e42d79f82e46d3 /cpp/src/Ice/StreamI.h | |
parent | Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice (diff) | |
download | ice-3c8924663df8629b33c2ddd38907c4bf2eeb83cd.tar.bz2 ice-3c8924663df8629b33c2ddd38907c4bf2eeb83cd.tar.xz ice-3c8924663df8629b33c2ddd38907c4bf2eeb83cd.zip |
- Fixing bug 2522 for Python. This involved adding the C++ class
UserExceptionWriter so that the Python extension can wrap a native
Python user exception into something that the C++ run time can
marshal. Also ported the changes to the servantLocator test.
- Implementing UserExceptionWriter in Java and C#.
- Consolidating the source files for the C# streaming API.
Diffstat (limited to 'cpp/src/Ice/StreamI.h')
-rw-r--r-- | cpp/src/Ice/StreamI.h | 150 |
1 files changed, 60 insertions, 90 deletions
diff --git a/cpp/src/Ice/StreamI.h b/cpp/src/Ice/StreamI.h index 70f5e8dd1c3..1f00533612d 100644 --- a/cpp/src/Ice/StreamI.h +++ b/cpp/src/Ice/StreamI.h @@ -13,48 +13,18 @@ #include <Ice/Stream.h> #include <Ice/BasicStream.h> -namespace IceInternal -{ - -// -// Subclass BasicStream in order to associate an InputStream with it. -// -class BasicInputStream : public BasicStream -{ -public: - - BasicInputStream(Instance*, Ice::InputStream*); - - Ice::InputStream* _in; -}; - -// -// Subclass BasicStream in order to associate an OutputStream with it. -// -class BasicOutputStream : public BasicStream -{ -public: - - BasicOutputStream(Instance*, Ice::OutputStream*); - - Ice::OutputStream* _out; -}; - -} - namespace Ice { // -// Implement InputStream as a wrapper around BasicInputStream. +// Implement InputStream as a wrapper around BasicStream. // class InputStreamI : public InputStream { public: - //InputStreamI(const IceInternal::InstancePtr&, const ::std::vector< ::Ice::Byte >&); - InputStreamI(const Ice::CommunicatorPtr&, const ::std::vector< ::Ice::Byte >&); - InputStreamI(const Ice::CommunicatorPtr&, const ::std::pair< const ::Ice::Byte*, const ::Ice::Byte* >&); + InputStreamI(const Ice::CommunicatorPtr&, const std::vector< Ice::Byte >&); + InputStreamI(const Ice::CommunicatorPtr&, const std::pair< const Ice::Byte*, const Ice::Byte* >&); virtual ~InputStreamI(); virtual Ice::CommunicatorPtr communicator() const; @@ -62,46 +32,46 @@ public: virtual void sliceObjects(bool); virtual bool readBool(); - virtual ::std::vector< bool > readBoolSeq(); - virtual bool* readBoolSeq(::std::pair<const bool*, const bool*>&); + virtual std::vector< bool > readBoolSeq(); + virtual bool* readBoolSeq(std::pair<const bool*, const bool*>&); - virtual ::Ice::Byte readByte(); - virtual ::std::vector< ::Ice::Byte > readByteSeq(); - virtual void readByteSeq(::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&); + virtual Ice::Byte readByte(); + virtual std::vector< Ice::Byte > readByteSeq(); + virtual void readByteSeq(std::pair<const Ice::Byte*, const Ice::Byte*>&); - virtual ::Ice::Short readShort(); - virtual ::std::vector< ::Ice::Short > readShortSeq(); - virtual ::Ice::Short* readShortSeq(::std::pair<const ::Ice::Short*, const ::Ice::Short*>&); + virtual Ice::Short readShort(); + virtual std::vector< Ice::Short > readShortSeq(); + virtual Ice::Short* readShortSeq(std::pair<const Ice::Short*, const Ice::Short*>&); - virtual ::Ice::Int readInt(); - virtual ::std::vector< ::Ice::Int > readIntSeq(); - virtual ::Ice::Int* readIntSeq(::std::pair<const ::Ice::Int*, const ::Ice::Int*>&); + virtual Ice::Int readInt(); + virtual std::vector< Ice::Int > readIntSeq(); + virtual Ice::Int* readIntSeq(std::pair<const Ice::Int*, const Ice::Int*>&); - virtual ::Ice::Long readLong(); - virtual ::std::vector< ::Ice::Long > readLongSeq(); - virtual ::Ice::Long* readLongSeq(::std::pair<const ::Ice::Long*, const ::Ice::Long*>&); + virtual Ice::Long readLong(); + virtual std::vector< Ice::Long > readLongSeq(); + virtual Ice::Long* readLongSeq(std::pair<const Ice::Long*, const Ice::Long*>&); - virtual ::Ice::Float readFloat(); - virtual ::std::vector< ::Ice::Float > readFloatSeq(); - virtual ::Ice::Float* readFloatSeq(::std::pair<const ::Ice::Float*, const ::Ice::Float*>&); + virtual Ice::Float readFloat(); + virtual std::vector< Ice::Float > readFloatSeq(); + virtual Ice::Float* readFloatSeq(std::pair<const Ice::Float*, const Ice::Float*>&); - virtual ::Ice::Double readDouble(); - virtual ::std::vector< ::Ice::Double > readDoubleSeq(); - virtual ::Ice::Double* readDoubleSeq(::std::pair<const ::Ice::Double*, const ::Ice::Double*>&); + virtual Ice::Double readDouble(); + virtual std::vector< Ice::Double > readDoubleSeq(); + virtual Ice::Double* readDoubleSeq(std::pair<const Ice::Double*, const Ice::Double*>&); - virtual ::std::string readString(); - virtual ::std::vector< ::std::string > readStringSeq(); + virtual std::string readString(); + virtual std::vector< std::string > readStringSeq(); - virtual ::std::wstring readWstring(); - virtual ::std::vector< ::std::wstring > readWstringSeq(); + virtual std::wstring readWstring(); + virtual std::vector< std::wstring > readWstringSeq(); - virtual ::Ice::Int readSize(); + virtual Ice::Int readSize(); - virtual ::Ice::ObjectPrx readProxy(); + virtual Ice::ObjectPrx readProxy(); - virtual void readObject(const ::Ice::ReadObjectCallbackPtr&); + virtual void readObject(const Ice::ReadObjectCallbackPtr&); - virtual ::std::string readTypeId(); + virtual std::string readTypeId(); virtual void throwException(); @@ -117,66 +87,65 @@ public: private: Ice::CommunicatorPtr _communicator; - IceInternal::BasicInputStream _is; - ::std::vector< ReadObjectCallbackPtr > _callbacks; + IceInternal::BasicStream* _is; + std::vector< ReadObjectCallbackPtr > _callbacks; }; // -// Implement OutputStream as a wrapper around BasicOutputStream. +// Implement OutputStream as a wrapper around BasicStream. // class OutputStreamI : public OutputStream { public: - //OutputStreamI(const IceInternal::InstancePtr&); - OutputStreamI(const Ice::CommunicatorPtr&); + OutputStreamI(const Ice::CommunicatorPtr&, IceInternal::BasicStream* = 0); virtual ~OutputStreamI(); virtual Ice::CommunicatorPtr communicator() const; virtual void writeBool(bool); - virtual void writeBoolSeq(const ::std::vector< bool >&); + virtual void writeBoolSeq(const std::vector< bool >&); virtual void writeBoolSeq(const bool*, const bool*); - virtual void writeByte(::Ice::Byte); - virtual void writeByteSeq(const ::std::vector< ::Ice::Byte >&); + virtual void writeByte(Ice::Byte); + virtual void writeByteSeq(const std::vector< Ice::Byte >&); virtual void writeByteSeq(const Ice::Byte*, const Ice::Byte*); - virtual void writeShort(::Ice::Short); - virtual void writeShortSeq(const ::std::vector< ::Ice::Short >&); + virtual void writeShort(Ice::Short); + virtual void writeShortSeq(const std::vector< Ice::Short >&); virtual void writeShortSeq(const Ice::Short*, const Ice::Short*); - virtual void writeInt(::Ice::Int); - virtual void writeIntSeq(const ::std::vector< ::Ice::Int >&); + virtual void writeInt(Ice::Int); + virtual void writeIntSeq(const std::vector< Ice::Int >&); virtual void writeIntSeq(const Ice::Int*, const Ice::Int*); - virtual void writeLong(::Ice::Long); - virtual void writeLongSeq(const ::std::vector< ::Ice::Long >&); + virtual void writeLong(Ice::Long); + virtual void writeLongSeq(const std::vector< Ice::Long >&); virtual void writeLongSeq(const Ice::Long*, const Ice::Long*); - virtual void writeFloat(::Ice::Float); - virtual void writeFloatSeq(const ::std::vector< ::Ice::Float >&); + virtual void writeFloat(Ice::Float); + virtual void writeFloatSeq(const std::vector< Ice::Float >&); virtual void writeFloatSeq(const Ice::Float*, const Ice::Float*); - virtual void writeDouble(::Ice::Double); - virtual void writeDoubleSeq(const ::std::vector< ::Ice::Double >&); + virtual void writeDouble(Ice::Double); + virtual void writeDoubleSeq(const std::vector< Ice::Double >&); virtual void writeDoubleSeq(const Ice::Double*, const Ice::Double*); - virtual void writeString(const ::std::string&); - virtual void writeStringSeq(const ::std::vector< ::std::string >&); + virtual void writeString(const std::string&); + virtual void writeStringSeq(const std::vector< std::string >&); - virtual void writeWstring(const ::std::wstring&); - virtual void writeWstringSeq(const ::std::vector< ::std::wstring >&); + virtual void writeWstring(const std::wstring&); + virtual void writeWstringSeq(const std::vector< std::wstring >&); - virtual void writeSize(::Ice::Int); + virtual void writeSize(Ice::Int); - virtual void writeProxy(const ::Ice::ObjectPrx&); + virtual void writeProxy(const Ice::ObjectPrx&); - virtual void writeObject(const ::Ice::ObjectPtr&); + virtual void writeObject(const Ice::ObjectPtr&); - virtual void writeTypeId(const ::std::string&); + virtual void writeTypeId(const std::string&); - virtual void writeException(const ::Ice::UserException&); + virtual void writeException(const Ice::UserException&); virtual void startSlice(); virtual void endSlice(); @@ -186,12 +155,13 @@ public: virtual void writePendingObjects(); - virtual void finished(::std::vector< ::Ice::Byte >&); + virtual void finished(std::vector< Ice::Byte >&); private: Ice::CommunicatorPtr _communicator; - IceInternal::BasicOutputStream _os; + IceInternal::BasicStream* _os; + bool _own; }; } |