diff options
Diffstat (limited to 'cpp/include/Ice/Exception.h')
-rw-r--r-- | cpp/include/Ice/Exception.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/cpp/include/Ice/Exception.h b/cpp/include/Ice/Exception.h index 7d0d85656ea..413bdd34bba 100644 --- a/cpp/include/Ice/Exception.h +++ b/cpp/include/Ice/Exception.h @@ -15,6 +15,7 @@ #include <Ice/Format.h> #include <Ice/Handle.h> #include <Ice/ObjectF.h> +#include <Ice/StreamF.h> namespace IceInternal { @@ -56,11 +57,22 @@ public: virtual UserException* ice_clone() const = 0; virtual void ice_throw() const = 0; - virtual void __write(::IceInternal::BasicStream*) const = 0; - virtual void __read(::IceInternal::BasicStream*) = 0; - + virtual void __write(::IceInternal::BasicStream*) const; + virtual void __read(::IceInternal::BasicStream*); + + virtual void __write(const OutputStreamPtr&) const; + virtual void __read(const InputStreamPtr&); + virtual bool __usesClasses() const; virtual void __usesClasses(bool); + +protected: + + virtual void __writeImpl(::IceInternal::BasicStream*) const = 0; + virtual void __readImpl(::IceInternal::BasicStream*) = 0; + + virtual void __writeImpl(const OutputStreamPtr&) const; + virtual void __readImpl(const InputStreamPtr&); }; typedef ::IceInternal::Handle<UserException> UserExceptionPtr; |