summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Direct.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-04-07 00:13:35 +0000
committerMarc Laukien <marc@zeroc.com>2004-04-07 00:13:35 +0000
commitd702a6bd170669e2b959ae49b24224c72ab8f367 (patch)
tree0109385349191c72a45cb2c3860ace90f0702d18 /cpp/src/Ice/Direct.cpp
parentfacet changes (diff)
downloadice-d702a6bd170669e2b959ae49b24224c72ab8f367.tar.bz2
ice-d702a6bd170669e2b959ae49b24224c72ab8f367.tar.xz
ice-d702a6bd170669e2b959ae49b24224c72ab8f367.zip
facet changes
Diffstat (limited to 'cpp/src/Ice/Direct.cpp')
-rw-r--r--cpp/src/Ice/Direct.cpp33
1 files changed, 12 insertions, 21 deletions
diff --git a/cpp/src/Ice/Direct.cpp b/cpp/src/Ice/Direct.cpp
index eb668c94e7d..d875225dec2 100644
--- a/cpp/src/Ice/Direct.cpp
+++ b/cpp/src/Ice/Direct.cpp
@@ -44,7 +44,7 @@ IceInternal::Direct::Direct(const Current& current) :
try
{
- _servant = servantManager->findServant(_current.id);
+ _servant = servantManager->findServant(_current.id, _current.facet);
if(!_servant && !_current.id.category.empty())
{
@@ -66,17 +66,7 @@ IceInternal::Direct::Direct(const Current& current) :
if(!_servant)
{
- ObjectNotExistException ex(__FILE__, __LINE__);
- ex.id = _current.id;
- ex.facet = _current.facet;
- ex.operation = _current.operation;
- throw ex;
- }
-
- if(!_current.facet.empty())
- {
- _facetServant = _servant->ice_findFacetPath(_current.facet, 0);
- if(!_facetServant)
+ if(servantManager->hasServant(_current.id))
{
FacetNotExistException ex(__FILE__, __LINE__);
ex.id = _current.id;
@@ -84,6 +74,14 @@ IceInternal::Direct::Direct(const Current& current) :
ex.operation = _current.operation;
throw ex;
}
+ else
+ {
+ ObjectNotExistException ex(__FILE__, __LINE__);
+ ex.id = _current.id;
+ ex.facet = _current.facet;
+ ex.operation = _current.operation;
+ throw ex;
+ }
}
}
catch(...)
@@ -128,14 +126,7 @@ IceInternal::Direct::~Direct()
}
const ObjectPtr&
-IceInternal::Direct::facetServant()
+IceInternal::Direct::servant()
{
- if(_facetServant)
- {
- return _facetServant;
- }
- else
- {
- return _servant;
- }
+ return _servant;
}