summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/Exception.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/Exception.h')
-rw-r--r--cpp/include/Ice/Exception.h18
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;