summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectionI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ConnectionI.cpp')
-rw-r--r--cpp/src/Ice/ConnectionI.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index 7e619ba2e0f..46369c022d0 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -119,14 +119,14 @@ private:
ConnectionIPtr _connection;
};
-Ice::ConnectionState connectionStateMap[] = {
- Ice::ConnectionStateInitializing, // StateNotInitialized
- Ice::ConnectionStateInitializing, // StateNotValidated
- Ice::ConnectionStateActive, // StateActive
- Ice::ConnectionStateHolding, // StateHolding
- Ice::ConnectionStateClosing, // StateClosing
- Ice::ConnectionStateClosed, // StateClosed
- Ice::ConnectionStateClosed, // StateFinished
+Ice::ObserverConnectionState connectionStateMap[] = {
+ Ice::ObserverConnectionStateInitializing, // StateNotInitialized
+ Ice::ObserverConnectionStateInitializing, // StateNotValidated
+ Ice::ObserverConnectionStateActive, // StateActive
+ Ice::ObserverConnectionStateHolding, // StateHolding
+ Ice::ObserverConnectionStateClosing, // StateClosing
+ Ice::ObserverConnectionStateClosed, // StateClosed
+ Ice::ObserverConnectionStateClosed, // StateFinished
};
}
@@ -448,6 +448,14 @@ Ice::ConnectionI::waitUntilFinished()
}
void
+Ice::ConnectionI::updateObserver()
+{
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+ assert(_instance->initializationData().observerResolver);
+ _observer = _instance->initializationData().observerResolver->getConnectionObserver(this, _observer);
+}
+
+void
Ice::ConnectionI::monitor(const IceUtil::Time& now)
{
IceUtil::Monitor<IceUtil::Mutex>::TryLock sync(*this);
@@ -1908,7 +1916,7 @@ Ice::ConnectionI::ConnectionI(const CommunicatorPtr& communicator,
if(_instance->initializationData().observerResolver)
{
- _observer = _instance->initializationData().observerResolver->getConnectionObserver(_observer, this);
+ _observer = _instance->initializationData().observerResolver->getConnectionObserver(this, _observer);
}
}
catch(const IceUtil::Exception&)
@@ -2136,8 +2144,8 @@ Ice::ConnectionI::setState(State state)
if(_observer)
{
- Ice::ConnectionState oldState = connectionStateMap[static_cast<int>(_state)];
- Ice::ConnectionState newState = connectionStateMap[static_cast<int>(state)];
+ Ice::ObserverConnectionState oldState = connectionStateMap[static_cast<int>(_state)];
+ Ice::ObserverConnectionState newState = connectionStateMap[static_cast<int>(state)];
if(oldState != newState)
{
_observer->stateChanged(oldState, newState);