summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/Exception.h
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-07-22 17:09:25 -0400
committerBernard Normier <bernard@zeroc.com>2016-07-22 17:09:25 -0400
commit752e06b4eb63abb8a30bb958802eaedda72d3806 (patch)
tree7c2348544d202c310a55a62629abc4025daa03a5 /cpp/include/Ice/Exception.h
parentDisable VS 2015 update 3 optimizer (diff)
downloadice-752e06b4eb63abb8a30bb958802eaedda72d3806.tar.bz2
ice-752e06b4eb63abb8a30bb958802eaedda72d3806.tar.xz
ice-752e06b4eb63abb8a30bb958802eaedda72d3806.zip
Added ICE_BUILDING_SRC to make builds
Ice::Dispatcher and Ice::LocalObject are now hidden with C++11 Reworked C++11 exception ice_clone, added ExceptionHelper + other C++ cleanups
Diffstat (limited to 'cpp/include/Ice/Exception.h')
-rw-r--r--cpp/include/Ice/Exception.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/cpp/include/Ice/Exception.h b/cpp/include/Ice/Exception.h
index d06f576aae3..b957a91be0c 100644
--- a/cpp/include/Ice/Exception.h
+++ b/cpp/include/Ice/Exception.h
@@ -51,28 +51,32 @@ public:
virtual ~LocalException() throw();
#endif
- static const std::string& ice_staticId();
-
-#ifndef ICE_CPP11_MAPPING
+#ifdef ICE_CPP11_MAPPING
+ std::unique_ptr<LocalException> ice_clone() const;
+#else
virtual LocalException* ice_clone() const = 0;
#endif
+
+ static const std::string& ice_staticId();
};
class ICE_API UserException : public IceUtil::Exception
{
public:
- static const std::string& ice_staticId();
-
virtual void __write(::Ice::OutputStream*) const;
virtual void __read(::Ice::InputStream*);
virtual bool __usesClasses() const;
-#ifndef ICE_CPP11_MAPPING
+#ifdef ICE_CPP11_MAPPING
+ std::unique_ptr<UserException> ice_clone() const;
+#else
virtual UserException* ice_clone() const = 0;
#endif
+ static const std::string& ice_staticId();
+
protected:
virtual void __writeImpl(::Ice::OutputStream*) const {};
@@ -90,12 +94,13 @@ public:
virtual ~SystemException() throw();
#endif
- static const std::string& ice_staticId();
-
-#ifndef ICE_CPP11_MAPPING
+#ifdef ICE_CPP11_MAPPING
+ std::unique_ptr<SystemException> ice_clone() const;
+#else
virtual SystemException* ice_clone() const = 0;
#endif
+ static const std::string& ice_staticId();
};
}