summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp6
-rw-r--r--cpp/src/Ice/CommunicatorI.h1
-rw-r--r--cpp/src/Ice/ObjectAdapterFactory.cpp8
-rw-r--r--cpp/src/Ice/ObjectAdapterFactory.h1
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp8
-rw-r--r--cpp/src/Ice/ObjectAdapterI.h1
6 files changed, 25 insertions, 0 deletions
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp
index 1bdeb18fc40..2c759c91951 100644
--- a/cpp/src/Ice/CommunicatorI.cpp
+++ b/cpp/src/Ice/CommunicatorI.cpp
@@ -118,6 +118,12 @@ Ice::CommunicatorI::waitForShutdown()
_instance->objectAdapterFactory()->waitForShutdown();
}
+bool
+Ice::CommunicatorI::isShutdown() const
+{
+ return _instance->objectAdapterFactory()->isShutdown();
+}
+
ObjectPrx
Ice::CommunicatorI::stringToProxy(const string& s) const
{
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index 0c0d6a0e985..47ba36d4304 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -27,6 +27,7 @@ public:
virtual void destroy();
virtual void shutdown();
virtual void waitForShutdown();
+ virtual bool isShutdown() const;
virtual ObjectPrx stringToProxy(const std::string&) const;
virtual std::string proxyToString(const ObjectPrx&) const;
diff --git a/cpp/src/Ice/ObjectAdapterFactory.cpp b/cpp/src/Ice/ObjectAdapterFactory.cpp
index bbd67ffd6eb..30b233482fd 100644
--- a/cpp/src/Ice/ObjectAdapterFactory.cpp
+++ b/cpp/src/Ice/ObjectAdapterFactory.cpp
@@ -95,6 +95,14 @@ IceInternal::ObjectAdapterFactory::waitForShutdown()
}
}
+bool
+IceInternal::ObjectAdapterFactory::isShutdown() const
+{
+ IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
+
+ return _instance == 0;
+}
+
void
IceInternal::ObjectAdapterFactory::destroy()
{
diff --git a/cpp/src/Ice/ObjectAdapterFactory.h b/cpp/src/Ice/ObjectAdapterFactory.h
index 5d35df6a568..e92d2c01916 100644
--- a/cpp/src/Ice/ObjectAdapterFactory.h
+++ b/cpp/src/Ice/ObjectAdapterFactory.h
@@ -23,6 +23,7 @@ public:
void shutdown();
void waitForShutdown();
+ bool isShutdown() const;
void destroy();
::Ice::ObjectAdapterPtr createObjectAdapter(const std::string&, const std::string&, const Ice::RouterPrx&);
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index 4ad993dbe06..f9eb4e989d5 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -287,6 +287,14 @@ Ice::ObjectAdapterI::waitForDeactivate()
Ice::voidMemFun(&IncomingConnectionFactory::waitUntilFinished));
}
+bool
+Ice::ObjectAdapterI::isDeactivated() const
+{
+ IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
+
+ return _deactivated;
+}
+
void
Ice::ObjectAdapterI::destroy()
{
diff --git a/cpp/src/Ice/ObjectAdapterI.h b/cpp/src/Ice/ObjectAdapterI.h
index d13e63d346e..40d8ba01a6f 100644
--- a/cpp/src/Ice/ObjectAdapterI.h
+++ b/cpp/src/Ice/ObjectAdapterI.h
@@ -49,6 +49,7 @@ public:
virtual void waitForHold();
virtual void deactivate();
virtual void waitForDeactivate();
+ virtual bool isDeactivated() const;
virtual void destroy();
virtual ObjectPrx add(const ObjectPtr&, const Identity&);