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.h33
1 files changed, 23 insertions, 10 deletions
diff --git a/cpp/include/Ice/Exception.h b/cpp/include/Ice/Exception.h
index a32744e9d53..7e37ac8c033 100644
--- a/cpp/include/Ice/Exception.h
+++ b/cpp/include/Ice/Exception.h
@@ -14,6 +14,13 @@
#include <IceUtil/Exception.h>
#include <Ice/Config.h>
+namespace IceInternal
+{
+
+class BasicStream;
+
+}
+
namespace Ice
{
@@ -26,10 +33,10 @@ public:
LocalException(const char*, int);
LocalException(const LocalException&);
LocalException& operator=(const LocalException&);
- virtual std::string _name() const;
- virtual std::ostream& _print(std::ostream&) const;
- virtual Exception* _clone() const;
- virtual void _throw() const;
+ virtual std::string _name() const = 0;
+ virtual std::ostream& _print(std::ostream&) const = 0;
+ virtual Exception* _clone() const = 0;
+ virtual void _throw() const = 0;
};
class ICE_API UserException : public IceUtil::Exception
@@ -39,12 +46,18 @@ public:
UserException();
UserException(const UserException&);
UserException& operator=(const UserException&);
- virtual std::string _name() const;
- virtual std::ostream& _print(std::ostream&) const;
- virtual Exception* _clone() const;
- virtual void _throw() const;
+ virtual std::string _name() const = 0;
+ virtual std::ostream& _print(std::ostream&) const = 0;
+ virtual Exception* _clone() const = 0;
+ virtual void _throw() const = 0;
+
+ virtual const std::string* _exceptionIds() const = 0;
+ virtual void __write(::IceInternal::BasicStream*) const = 0;
+ virtual void __read(::IceInternal::BasicStream*) = 0;
};
+class UnknownLocalException;
+class UnknownUserException;
class UnknownException;
class VersionMismatchException;
class CommunicatorDestroyedException;
@@ -82,8 +95,8 @@ class AbortBatchRequestException;
namespace IceUtil
{
-std::ostream& printException(std::ostream&, const Ice::LocalException&);
-std::ostream& printException(std::ostream&, const Ice::UserException&);
+std::ostream& printException(std::ostream&, const Ice::UnknownLocalException&);
+std::ostream& printException(std::ostream&, const Ice::UnknownUserException&);
std::ostream& printException(std::ostream&, const Ice::UnknownException&);
std::ostream& printException(std::ostream&, const Ice::VersionMismatchException&);
std::ostream& printException(std::ostream&, const Ice::CommunicatorDestroyedException&);