summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Incoming.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/Incoming.cpp
parentFixes (diff)
downloadice-c1e8bda5abc33ae40e3603c1a3fb6ba8645780a0.tar.bz2
ice-c1e8bda5abc33ae40e3603c1a3fb6ba8645780a0.tar.xz
ice-c1e8bda5abc33ae40e3603c1a3fb6ba8645780a0.zip
Updates
Diffstat (limited to 'cpp/src/Ice/Incoming.cpp')
-rw-r--r--cpp/src/Ice/Incoming.cpp97
1 files changed, 7 insertions, 90 deletions
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp
index 801a13039c7..dab7c8c9936 100644
--- a/cpp/src/Ice/Incoming.cpp
+++ b/cpp/src/Ice/Incoming.cpp
@@ -60,8 +60,7 @@ IceInternal::IncomingBase::IncomingBase(IncomingBase& in) :
void
IceInternal::IncomingBase::__adopt(IncomingBase& other)
{
- _observer = other._observer;
- other._observer = 0;
+ _observer.adopt(other._observer);
_servant = other._servant;
other._servant = 0;
@@ -112,18 +111,6 @@ IncomingBase::__endWriteParams(bool ok)
{
*(_os.b.begin() + headerSize + 4) = ok ? replyOK : replyUserException; // Reply status position.
_os.endWriteEncaps();
-
- if(_observer)
- {
- if(ok)
- {
- _observer->responseOK();
- }
- else
- {
- _observer->responseUserException();
- }
- }
}
}
@@ -136,11 +123,6 @@ IncomingBase::__writeEmptyParams()
assert(_current.encoding >= Ice::Encoding_1_0); // Encoding for reply is known.
_os.write(replyOK);
_os.writeEmptyEncaps(_current.encoding);
-
- if(_observer)
- {
- _observer->responseOK();
- }
}
}
@@ -160,18 +142,6 @@ IncomingBase::__writeParamEncaps(const Byte* v, Ice::Int sz, bool ok)
{
_os.writeEncaps(v, sz);
}
-
- if(_observer)
- {
- if(ok)
- {
- _observer->responseOK();
- }
- else
- {
- _observer->responseUserException();
- }
- }
}
}
@@ -235,10 +205,6 @@ IceInternal::IncomingBase::__servantLocatorFinished()
//
if(_response)
{
- if(_observer)
- {
- _observer->responseUserException();
- }
_os.b.resize(headerSize + 4); // Reply status position.
_os.write(replyUserException);
_os.startWriteEncaps(_current.encoding);
@@ -251,11 +217,7 @@ IceInternal::IncomingBase::__servantLocatorFinished()
_connection->sendNoResponse();
}
- if(_observer)
- {
- _observer->detach();
- _observer = 0;
- }
+ _observer.detach();
_connection = 0;
}
catch(const std::exception& ex)
@@ -301,11 +263,6 @@ IceInternal::IncomingBase::__handleException(const std::exception& exc)
if(_response)
{
- if(_observer)
- {
- _observer->responseRequestFailedException();
- }
-
_os.b.resize(headerSize + 4); // Reply status position.
if(dynamic_cast<ObjectNotExistException*>(rfe))
{
@@ -357,11 +314,6 @@ IceInternal::IncomingBase::__handleException(const std::exception& exc)
if(_response)
{
- if(_observer)
- {
- _observer->responseUnknownException();
- }
-
_os.b.resize(headerSize + 4); // Reply status position.
if(const UnknownLocalException* ule = dynamic_cast<const UnknownLocalException*>(&exc))
{
@@ -428,11 +380,6 @@ IceInternal::IncomingBase::__handleException(const std::exception& exc)
if(_response)
{
- if(_observer)
- {
- _observer->responseUnknownException();
- }
-
_os.b.resize(headerSize + 4); // Reply status position.
_os.write(replyUnknownException);
ostringstream str;
@@ -446,12 +393,7 @@ IceInternal::IncomingBase::__handleException(const std::exception& exc)
}
}
- if(_observer)
- {
- _observer->detach();
- _observer = 0;
- }
-
+ _observer.detach();
_connection = 0;
}
@@ -467,10 +409,6 @@ IceInternal::IncomingBase::__handleException()
if(_response)
{
- if(_observer)
- {
- _observer->responseUnknownException();
- }
_os.b.resize(headerSize + 4); // Reply status position.
_os.write(replyUnknownException);
string reason = "unknown c++ exception";
@@ -482,11 +420,7 @@ IceInternal::IncomingBase::__handleException()
_connection->sendNoResponse();
}
- if(_observer)
- {
- _observer->detach();
- _observer = 0;
- }
+ _observer.detach();
_connection = 0;
}
@@ -614,11 +548,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre
const ObserverResolverPtr& resolver = _is->instance()->initializationData().observerResolver;
if(resolver)
{
- _observer = resolver->getDispatchObserver(_current);
- if(_observer)
- {
- _observer->attach();
- }
+ _observer.attach(resolver->getDispatchObserver(_current));
}
//
@@ -650,10 +580,6 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre
if(_response)
{
- if(_observer)
- {
- _observer->responseUserException();
- }
_os.write(replyUserException);
_os.startWriteEncaps(encoding);
_os.write(ex);
@@ -665,11 +591,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre
_connection->sendNoResponse();
}
- if(_observer)
- {
- _observer->detach();
- _observer = 0;
- }
+ _observer.detach();
_connection = 0;
return;
}
@@ -759,12 +681,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre
_connection->sendNoResponse();
}
- if(_observer)
- {
- _observer->detach();
- _observer = 0;
- }
-
+ _observer.detach();
_connection = 0;
}