diff options
author | Benoit Foucher <benoit@zeroc.com> | 2009-12-15 18:25:33 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2009-12-15 18:25:33 +0100 |
commit | 847b96ee887e245c2c78274769b035528784d772 (patch) | |
tree | 9771f44d242e475ad7ef02d3d6ed0712251a7ed3 /cpp/src/Ice/StreamI.h | |
parent | more INSTALL/README edits (diff) | |
download | ice-847b96ee887e245c2c78274769b035528784d772.tar.bz2 ice-847b96ee887e245c2c78274769b035528784d772.tar.xz ice-847b96ee887e245c2c78274769b035528784d772.zip |
Fixes for 4471 - more Ice stream fixes
Diffstat (limited to 'cpp/src/Ice/StreamI.h')
-rw-r--r-- | cpp/src/Ice/StreamI.h | 235 |
1 files changed, 138 insertions, 97 deletions
diff --git a/cpp/src/Ice/StreamI.h b/cpp/src/Ice/StreamI.h index 4017c85d7d1..a39214885fc 100644 --- a/cpp/src/Ice/StreamI.h +++ b/cpp/src/Ice/StreamI.h @@ -11,7 +11,14 @@ #define ICE_STREAM_I_H #include <Ice/Stream.h> -#include <Ice/BasicStream.h> + +namespace IceInternal +{ + +// Forward declaration. +class BasicStream; + +}; namespace Ice { @@ -23,19 +30,56 @@ class InputStreamI : public InputStream { public: - InputStreamI(const Ice::CommunicatorPtr&, const std::vector< Ice::Byte >&); - InputStreamI(const Ice::CommunicatorPtr&, const std::pair< const Ice::Byte*, const Ice::Byte* >&); + InputStreamI(const CommunicatorPtr&, const std::vector< Byte >&); + InputStreamI(const CommunicatorPtr&, const std::pair< const Byte*, const Byte* >&); virtual ~InputStreamI(); - virtual Ice::CommunicatorPtr communicator() const; + virtual CommunicatorPtr communicator() const; virtual void sliceObjects(bool); - virtual Ice::Int readSize(); - virtual Ice::Int readAndCheckSeqSize(int); - - virtual void readObject(const Ice::ReadObjectCallbackPtr&); - + // + // These methods should be removed when the old stream API is removed. + // + virtual bool readBool(); + virtual Byte readByte(); + virtual Short readShort(); + virtual Int readInt(); + virtual Long readLong(); + virtual Float readFloat(); + virtual Double readDouble(); + virtual ::std::string readString(bool = true); + virtual ::std::wstring readWstring(); + + // + // These methods should be removed when the old stream API is removed. + // + virtual std::vector< bool > readBoolSeq(); + virtual std::vector< Byte > readByteSeq(); + virtual std::vector< Short > readShortSeq(); + virtual std::vector< Int > readIntSeq(); + virtual std::vector< Long > readLongSeq(); + virtual std::vector< Float > readFloatSeq(); + virtual std::vector< Double > readDoubleSeq(); + virtual std::vector< std::string > readStringSeq(bool = true); + virtual std::vector< std::wstring > readWstringSeq(); + + // + // These methods should be removed when the old stream API is removed. + // + virtual bool* readBoolSeq(std::pair<const bool*, const bool*>&); + virtual void readByteSeq(std::pair<const Byte*, const Byte*>&); + virtual Short* readShortSeq(std::pair<const Short*, const Short*>&); + virtual Int* readIntSeq(std::pair<const Int*, const Int*>&); + virtual Long* readLongSeq(std::pair<const Long*, const Long*>&); + virtual Float* readFloatSeq(std::pair<const Float*, const Float*>&); + virtual Double* readDoubleSeq(std::pair<const Double*, const Double*>&); + + virtual Int readSize(); + virtual Int readAndCheckSeqSize(int); + + virtual ObjectPrx readProxy(); + virtual void readObject(const ReadObjectCallbackPtr&); virtual std::string readTypeId(); virtual void throwException(); @@ -51,49 +95,28 @@ public: virtual void readPendingObjects(); virtual void rewind(); - -private: - - virtual bool internalReadBool(); - virtual ::Ice::Byte internalReadByte(); - virtual ::Ice::Short internalReadShort(); - virtual ::Ice::Int internalReadInt(); - virtual ::Ice::Long internalReadLong(); - virtual ::Ice::Float internalReadFloat(); - virtual ::Ice::Double internalReadDouble(); - virtual ::std::string internalReadString(bool = true); - virtual ::std::wstring internalReadWstring(); - virtual ::Ice::ObjectPrx internalReadProxy(); - // - // Remove these methods when the old Stream api, is removed. - // - virtual std::vector< bool > internalReadBoolSeq(); - virtual bool* internalReadBoolSeq(std::pair<const bool*, const bool*>&); - - virtual std::vector< Ice::Byte > internalReadByteSeq(); - virtual void internalReadByteSeq(std::pair<const Ice::Byte*, const Ice::Byte*>&); - - virtual std::vector< Ice::Short > internalReadShortSeq(); - virtual Ice::Short* internalReadShortSeq(std::pair<const Ice::Short*, const Ice::Short*>&); - - virtual std::vector< Ice::Int > internalReadIntSeq(); - virtual Ice::Int* internalReadIntSeq(std::pair<const Ice::Int*, const Ice::Int*>&); - - virtual std::vector< Ice::Long > internalReadLongSeq(); - virtual Ice::Long* internalReadLongSeq(std::pair<const Ice::Long*, const Ice::Long*>&); - - virtual std::vector< Ice::Float > internalReadFloatSeq(); - virtual Ice::Float* internalReadFloatSeq(std::pair<const Ice::Float*, const Ice::Float*>&); + virtual void read(bool& v); + virtual void read(Byte& v); + virtual void read(Short& v); + virtual void read(Int& v); + virtual void read(Long& v); + virtual void read(Float& v); + virtual void read(Double& v); + virtual void read(std::string& v, bool convert = true); + virtual void read(std::vector<std::string>&, bool); + virtual void read(std::wstring& v); + virtual void read(std::pair<const bool*, const bool*>&, ::IceUtil::ScopedArray<bool>&); + virtual void read(std::pair<const Byte*, const Byte*>&); + virtual void read(std::pair<const Short*, const Short*>&, ::IceUtil::ScopedArray<Short>&); + virtual void read(std::pair<const Int*, const Int*>&, ::IceUtil::ScopedArray<Int>&); + virtual void read(std::pair<const Long*, const Long*>&, ::IceUtil::ScopedArray<Long>&); + virtual void read(std::pair<const Float*, const Float*>&, ::IceUtil::ScopedArray<Float>&); + virtual void read(std::pair<const Double*, const Double*>&, ::IceUtil::ScopedArray<Double>&); - virtual std::vector< Ice::Double > internalReadDoubleSeq(); - virtual Ice::Double* internalReadDoubleSeq(std::pair<const Ice::Double*, const Ice::Double*>&); - - virtual std::vector< std::string > internalReadStringSeq(bool = true); - - virtual std::vector< std::wstring > internalReadWstringSeq(); +private: - Ice::CommunicatorPtr _communicator; + const CommunicatorPtr _communicator; IceInternal::BasicStream* _is; std::vector< ReadObjectCallbackPtr > _callbacks; }; @@ -105,18 +128,75 @@ class OutputStreamI : public OutputStream { public: - OutputStreamI(const Ice::CommunicatorPtr&, IceInternal::BasicStream* = 0); + OutputStreamI(const CommunicatorPtr&, IceInternal::BasicStream* = 0); virtual ~OutputStreamI(); - virtual Ice::CommunicatorPtr communicator() const; + virtual CommunicatorPtr communicator() const; - virtual void writeObject(const ::Ice::ObjectPtr&); - virtual void writeException(const Ice::UserException&); + // + // These methods should be removed when the old stream API is removed. + // + virtual void writeBool(bool); + virtual void writeByte(Byte); + virtual void writeShort(Short); + virtual void writeInt(Int); + virtual void writeLong(Long); + virtual void writeFloat(Float); + virtual void writeDouble(Double); + virtual void writeString(const ::std::string&, bool = true); + virtual void writeWstring(const ::std::wstring&); - virtual void writeSize(Ice::Int); + // + // These methods should be removed when the old stream API is removed. + // + virtual void writeBoolSeq(const std::vector< bool >&); + virtual void writeByteSeq(const std::vector< Byte >&); + virtual void writeShortSeq(const std::vector< Short >&); + virtual void writeIntSeq(const std::vector< Int >&); + virtual void writeLongSeq(const std::vector< Long >&); + virtual void writeFloatSeq(const std::vector< Float >&); + virtual void writeDoubleSeq(const std::vector< Double >&); + virtual void writeStringSeq(const std::vector< std::string >&, bool = true); + virtual void writeWstringSeq(const std::vector< std::wstring >&); - virtual void writeTypeId(const std::string&); + // + // These methods should be removed when the old stream API is removed. + // + virtual void writeBoolSeq(const bool*, const bool*); + virtual void writeByteSeq(const Byte*, const Byte*); + virtual void writeShortSeq(const Short*, const Short*); + virtual void writeIntSeq(const Int*, const Int*); + virtual void writeLongSeq(const Long*, const Long*); + virtual void writeFloatSeq(const Float*, const Float*); + virtual void writeDoubleSeq(const Double*, const Double*); + + virtual void writeObject(const ObjectPtr&); + virtual void writeException(const UserException&); + virtual void writeProxy(const ObjectPrx&); + + virtual void writeSize(Int); + virtual void writeTypeId(const std::string&); + + virtual void write(bool); + virtual void write(Byte); + virtual void write(Short); + virtual void write(Int); + virtual void write(Long); + virtual void write(Float); + virtual void write(Double); + virtual void write(const std::string&, bool = true); + virtual void write(const std::vector<std::string>&, bool); + virtual void write(const char* v, bool = true); + virtual void write(const std::wstring& v); + + virtual void write(const bool*, const bool*); + virtual void write(const Byte*, const Byte*); + virtual void write(const Short*, const Short*); + virtual void write(const Int*, const Int*); + virtual void write(const Long*, const Long*); + virtual void write(const Float*, const Float*); + virtual void write(const Double*, const Double*); virtual void startSlice(); virtual void endSlice(); @@ -126,54 +206,15 @@ public: virtual void writePendingObjects(); - virtual void finished(std::vector< Ice::Byte >&); + virtual void finished(std::vector< Byte >&); virtual void reset(bool); private: - - virtual void internalWriteBool(bool); - virtual void internalWriteByte(::Ice::Byte); - virtual void internalWriteShort(::Ice::Short); - virtual void internalWriteInt(::Ice::Int); - virtual void internalWriteLong(::Ice::Long); - virtual void internalWriteFloat(::Ice::Float); - virtual void internalWriteDouble(::Ice::Double); - virtual void internalWriteString(const ::std::string&, bool = true); - virtual void internalWriteWstring(const ::std::wstring&); - virtual void internalWriteProxy(const ::Ice::ObjectPrx&); - - // - // Remove these methods when the old Stream api, is removed. - // - virtual void internalWriteBoolSeq(const std::vector< bool >&); - virtual void internalWriteBoolSeq(const bool*, const bool*); - - virtual void internalWriteByteSeq(const std::vector< Ice::Byte >&); - virtual void internalWriteByteSeq(const Ice::Byte*, const Ice::Byte*); - - virtual void internalWriteShortSeq(const std::vector< Ice::Short >&); - virtual void internalWriteShortSeq(const Ice::Short*, const Ice::Short*); - - virtual void internalWriteIntSeq(const std::vector< Ice::Int >&); - virtual void internalWriteIntSeq(const Ice::Int*, const Ice::Int*); - - virtual void internalWriteLongSeq(const std::vector< Ice::Long >&); - virtual void internalWriteLongSeq(const Ice::Long*, const Ice::Long*); - - virtual void internalWriteFloatSeq(const std::vector< Ice::Float >&); - virtual void internalWriteFloatSeq(const Ice::Float*, const Ice::Float*); - - virtual void internalWriteDoubleSeq(const std::vector< Ice::Double >&); - virtual void internalWriteDoubleSeq(const Ice::Double*, const Ice::Double*); - - virtual void internalWriteStringSeq(const std::vector< std::string >&, bool = true); - - virtual void internalWriteWstringSeq(const std::vector< std::wstring >&); - Ice::CommunicatorPtr _communicator; + const CommunicatorPtr _communicator; IceInternal::BasicStream* _os; - bool _own; + const bool _own; }; } |