summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/EndpointI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-08-06 09:56:04 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-08-06 09:56:04 +0200
commitc1e8bda5abc33ae40e3603c1a3fb6ba8645780a0 (patch)
treecf400743403ef2703a24b5044ab49c5e2385baf5 /cpp/src/Ice/EndpointI.cpp
parentFixes (diff)
downloadice-c1e8bda5abc33ae40e3603c1a3fb6ba8645780a0.tar.bz2
ice-c1e8bda5abc33ae40e3603c1a3fb6ba8645780a0.tar.xz
ice-c1e8bda5abc33ae40e3603c1a3fb6ba8645780a0.zip
Updates
Diffstat (limited to 'cpp/src/Ice/EndpointI.cpp')
-rw-r--r--cpp/src/Ice/EndpointI.cpp31
1 files changed, 8 insertions, 23 deletions
diff --git a/cpp/src/Ice/EndpointI.cpp b/cpp/src/Ice/EndpointI.cpp
index ab74afb660a..688cbfc10e6 100644
--- a/cpp/src/Ice/EndpointI.cpp
+++ b/cpp/src/Ice/EndpointI.cpp
@@ -13,6 +13,7 @@
#include <Ice/PropertiesI.h>
#include <Ice/LoggerUtil.h>
#include <IceUtil/MutexPtrLock.h>
+#include <Ice/Observer.h>
using namespace std;
using namespace Ice::Instrumentation;
@@ -191,15 +192,11 @@ vector<ConnectorPtr>
IceInternal::EndpointHostResolver::resolve(const string& host, int port, const EndpointIPtr& endpoint)
{
vector<ConnectorPtr> connectors;
- ObserverPtr observer;
+ ObserverHelperT<> observer;
const ObserverResolverPtr& resolver = _instance->initializationData().observerResolver;
if(resolver)
{
- observer = resolver->getEndpointResolveObserver(endpoint->getInfo(), endpoint->toString());
- if(observer)
- {
- observer->attach();
- }
+ observer.attach(resolver->getEndpointResolveObserver(endpoint->getInfo(), endpoint->toString()));
}
try
@@ -208,15 +205,7 @@ IceInternal::EndpointHostResolver::resolve(const string& host, int port, const E
}
catch(const Ice::LocalException& ex)
{
- if(observer)
- {
- observer->failed(ex.ice_name());
- }
- }
-
- if(observer)
- {
- observer->detach();
+ observer.failed(ex.ice_name());
}
return connectors;
}
@@ -297,7 +286,7 @@ IceInternal::EndpointHostResolver::run()
r = _queue.front();
_queue.pop_front();
- threadObserver = _observer;
+ threadObserver = _observer.get();
}
const ProtocolSupport protocol = _instance->protocolSupport();
@@ -305,14 +294,14 @@ IceInternal::EndpointHostResolver::run()
{
if(threadObserver)
{
- threadObserver->stateChanged(ThreadStateIdle, ThreadStateInUseForMisc);
+ threadObserver->stateChanged(ThreadStateIdle, ThreadStateInUseForOther);
}
r.callback->connectors(r.endpoint->connectors(getAddresses(r.host, r.port, protocol, true)));
if(threadObserver)
{
- threadObserver->stateChanged(ThreadStateInUseForMisc, ThreadStateIdle);
+ threadObserver->stateChanged(ThreadStateInUseForOther, ThreadStateIdle);
}
}
catch(const Ice::LocalException& ex)
@@ -351,11 +340,7 @@ IceInternal::EndpointHostResolver::updateObserver()
const ObserverResolverPtr& resolver = _instance->initializationData().observerResolver;
if(resolver)
{
- _observer = resolver->getThreadObserver("Communicator", name(), ThreadStateIdle, _observer);
- if(_observer)
- {
- _observer->attach();
- }
+ _observer.attach(resolver->getThreadObserver("Communicator", name(), ThreadStateIdle, _observer.get()));
}
}