diff options
author | Mark Spruiell <mes@zeroc.com> | 2004-08-31 13:10:26 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2004-08-31 13:10:26 +0000 |
commit | 1b9072c62553bb7974a1518bc14bd5b1376001ed (patch) | |
tree | be4733dea3441c3d0424e28eb7a2ec235fcaa8d2 /cpp/src/Ice/StreamI.h | |
parent | minor edits (diff) | |
download | ice-1b9072c62553bb7974a1518bc14bd5b1376001ed.tar.bz2 ice-1b9072c62553bb7974a1518bc14bd5b1376001ed.tar.xz ice-1b9072c62553bb7974a1518bc14bd5b1376001ed.zip |
adding public streaming API
Diffstat (limited to 'cpp/src/Ice/StreamI.h')
-rw-r--r-- | cpp/src/Ice/StreamI.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/cpp/src/Ice/StreamI.h b/cpp/src/Ice/StreamI.h new file mode 100644 index 00000000000..1ecb1ce472a --- /dev/null +++ b/cpp/src/Ice/StreamI.h @@ -0,0 +1,164 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_STREAM_I_H +#define ICE_STREAM_I_H + +#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. +// +class InputStreamI : public InputStream +{ +public: + + InputStreamI(const IceInternal::InstancePtr&, const ::std::vector< ::Ice::Byte >&); + virtual ~InputStreamI(); + + virtual void sliceObjects(bool); + + virtual bool readBool(); + virtual ::std::vector< bool > readBoolSeq(); + + virtual ::Ice::Byte readByte(); + virtual ::std::vector< ::Ice::Byte > readByteSeq(); + + virtual ::Ice::Short readShort(); + virtual ::std::vector< ::Ice::Short > readShortSeq(); + + virtual ::Ice::Int readInt(); + virtual ::std::vector< ::Ice::Int > readIntSeq(); + + virtual ::Ice::Long readLong(); + virtual ::std::vector< ::Ice::Long > readLongSeq(); + + virtual ::Ice::Float readFloat(); + virtual ::std::vector< ::Ice::Float > readFloatSeq(); + + virtual ::Ice::Double readDouble(); + virtual ::std::vector< ::Ice::Double > readDoubleSeq(); + + virtual ::std::string readString(); + virtual ::std::vector< ::std::string > readStringSeq(); + + virtual ::Ice::Int readSize(); + + virtual ::Ice::ObjectPrx readProxy(); + + virtual void readObject(const ::Ice::ReadObjectCallbackPtr&); + + virtual ::std::string readTypeId(); + + virtual void throwException(); + + virtual void startSlice(); + virtual void endSlice(); + virtual void skipSlice(); + + virtual void finished(); + +private: + + IceInternal::BasicInputStream _is; + bool _readObjects; + ::std::vector< ReadObjectCallbackPtr > _callbacks; +}; + +// +// Implement OutputStream as a wrapper around BasicOutputStream. +// +class OutputStreamI : public OutputStream +{ +public: + + OutputStreamI(const IceInternal::InstancePtr&); + virtual ~OutputStreamI(); + + virtual void writeBool(bool); + virtual void writeBoolSeq(const ::std::vector< bool >&); + + virtual void writeByte(::Ice::Byte); + virtual void writeByteSeq(const ::std::vector< ::Ice::Byte >&); + + virtual void writeShort(::Ice::Short); + virtual void writeShortSeq(const ::std::vector< ::Ice::Short >&); + + virtual void writeInt(::Ice::Int); + virtual void writeIntSeq(const ::std::vector< ::Ice::Int >&); + + virtual void writeLong(::Ice::Long); + virtual void writeLongSeq(const ::std::vector< ::Ice::Long >&); + + virtual void writeFloat(::Ice::Float); + virtual void writeFloatSeq(const ::std::vector< ::Ice::Float >&); + + virtual void writeDouble(::Ice::Double); + virtual void writeDoubleSeq(const ::std::vector< ::Ice::Double >&); + + virtual void writeString(const ::std::string&); + virtual void writeStringSeq(const ::std::vector< ::std::string >&); + + virtual void writeSize(::Ice::Int); + + virtual void writeProxy(const ::Ice::ObjectPrx&); + + virtual void writeObject(const ::Ice::ObjectPtr&); + + virtual void writeTypeId(const ::std::string&); + + virtual void writeException(const ::Ice::UserException&); + + virtual void startSlice(); + virtual void endSlice(); + + virtual void finished(::std::vector< ::Ice::Byte >&); + +private: + + IceInternal::BasicOutputStream _os; + bool _writeObjects; +}; + +} + +#endif |