summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-04-28 17:39:34 +0200
committerJose <jose@zeroc.com>2017-04-28 17:39:34 +0200
commit03ada3f46b2ba7dc38f3e0f293cd64e4ce6049c1 (patch)
tree43c0b8cdc06de03862a7a9d503dea024b57308b0 /cpp
parentFixed ICE-7843 - Check NSStreamStatusAtEnd in iOS transports (diff)
downloadice-03ada3f46b2ba7dc38f3e0f293cd64e4ce6049c1.tar.bz2
ice-03ada3f46b2ba7dc38f3e0f293cd64e4ce6049c1.tar.xz
ice-03ada3f46b2ba7dc38f3e0f293cd64e4ce6049c1.zip
Add operator bool() to CommunicatorHolder
Diffstat (limited to 'cpp')
-rw-r--r--cpp/include/Ice/Initialize.h8
-rw-r--r--cpp/src/Ice/Initialize.cpp9
2 files changed, 13 insertions, 4 deletions
diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h
index 587af6172c5..83e36938dc4 100644
--- a/cpp/include/Ice/Initialize.h
+++ b/cpp/include/Ice/Initialize.h
@@ -215,6 +215,8 @@ public:
CommunicatorHolder(CommunicatorHolder&&) = default;
CommunicatorHolder& operator=(CommunicatorHolder&&);
+ explicit operator bool() const;
+
#else // C++98 mapping
//
@@ -225,12 +227,12 @@ public:
CommunicatorHolder(int&, const char*[], const char*, int = ICE_INT_VERSION);
CommunicatorHolder(int&, char*[], const char*, int = ICE_INT_VERSION);
-#ifdef _WIN32
+# ifdef _WIN32
CommunicatorHolder(int&, const wchar_t*[], const InitializationData& = InitializationData(), int = ICE_INT_VERSION);
CommunicatorHolder(int&, wchar_t*[], const InitializationData& = InitializationData(), int = ICE_INT_VERSION);
CommunicatorHolder(int&, const wchar_t*[], const char*, int = ICE_INT_VERSION);
CommunicatorHolder(int&, wchar_t*[], const char*, int = ICE_INT_VERSION);
-#endif
+# endif
explicit CommunicatorHolder(StringSeq&, const InitializationData& = InitializationData(), int = ICE_INT_VERSION);
CommunicatorHolder(StringSeq&, const char*, int = ICE_INT_VERSION);
@@ -244,6 +246,8 @@ public:
explicit CommunicatorHolder(const CommunicatorPtr&);
CommunicatorHolder& operator=(const CommunicatorPtr&);
+ operator bool() const;
+
//
// Required for successful copy-initialization, but not
// defined as it should always be elided by compiler
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp
index 9c89b83488e..65550223b42 100644
--- a/cpp/src/Ice/Initialize.cpp
+++ b/cpp/src/Ice/Initialize.cpp
@@ -453,7 +453,7 @@ Ice::CommunicatorHolder::CommunicatorHolder(int& argc, char* argv[], const char*
{
}
-#ifdef _WIN32
+# ifdef _WIN32
Ice::CommunicatorHolder::CommunicatorHolder(int& argc, const wchar_t* argv[], const InitializationData& initData,
int version) :
_communicator(initialize(argc, argv, initData, version))
@@ -475,7 +475,7 @@ Ice::CommunicatorHolder::CommunicatorHolder(int& argc, wchar_t* argv[], const ch
_communicator(initialize(argc, argv, configFile, version))
{
}
-#endif
+# endif
Ice::CommunicatorHolder::CommunicatorHolder(StringSeq& args, const InitializationData& initData, int version) :
_communicator(initialize(args, initData, version))
@@ -523,6 +523,11 @@ Ice::CommunicatorHolder::~CommunicatorHolder()
}
}
+Ice::CommunicatorHolder::operator bool() const
+{
+ return _communicator != ICE_NULLPTR;
+}
+
const Ice::CommunicatorPtr&
Ice::CommunicatorHolder::communicator() const
{