summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Direct.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-05-16 19:14:39 +0000
committerBernard Normier <bernard@zeroc.com>2007-05-16 19:14:39 +0000
commit93349d8446a3847d38c8bed0cefb71cdecb0570a (patch)
tree1426813a2e221e92dc7ce56c36d4aba240ed0c96 /cpp/src/Ice/Direct.cpp
parentBug 1996 - multihomed hostnames (diff)
downloadice-93349d8446a3847d38c8bed0cefb71cdecb0570a.tar.bz2
ice-93349d8446a3847d38c8bed0cefb71cdecb0570a.tar.xz
ice-93349d8446a3847d38c8bed0cefb71cdecb0570a.zip
New Dispatch Interceptor (see bug #2126)
Diffstat (limited to 'cpp/src/Ice/Direct.cpp')
-rw-r--r--cpp/src/Ice/Direct.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/cpp/src/Ice/Direct.cpp b/cpp/src/Ice/Direct.cpp
index b25c85fb9e1..a70078d1948 100644
--- a/cpp/src/Ice/Direct.cpp
+++ b/cpp/src/Ice/Direct.cpp
@@ -91,6 +91,35 @@ IceInternal::Direct::Direct(const Current& current) :
}
}
+bool
+IceInternal::Direct::isCollocated()
+{
+ return true;
+}
+
+const Current&
+IceInternal::Direct::getCurrent()
+{
+ return _current;
+}
+
+void
+IceInternal::Direct::throwUserException()
+{
+ if(_userException.get() == 0)
+ {
+ assert(0); // should never happen
+ throw Ice::UnknownUserException(__FILE__, __LINE__);
+ }
+ _userException->ice_throw();
+}
+
+void
+IceInternal::Direct::setUserException(const Ice::UserException& ue)
+{
+ _userException.reset(dynamic_cast<Ice::UserException*>(ue.ice_clone()));
+}
+
void
IceInternal::Direct::destroy()
{
@@ -123,3 +152,4 @@ IceInternal::Direct::servant()
{
return _servant;
}
+