diff options
author | Marc Laukien <marc@zeroc.com> | 2004-04-07 00:13:35 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-04-07 00:13:35 +0000 |
commit | d702a6bd170669e2b959ae49b24224c72ab8f367 (patch) | |
tree | 0109385349191c72a45cb2c3860ace90f0702d18 /cpp/src/Ice/Direct.cpp | |
parent | facet changes (diff) | |
download | ice-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.cpp | 33 |
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; } |