diff options
author | Marc Laukien <marc@zeroc.com> | 2001-11-28 21:26:04 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-11-28 21:26:04 +0000 |
commit | a60d11c20942109604735dc617576dbecdc8d23b (patch) | |
tree | 3fd48680cb34d0b335248a207e93f7de227b021f /cpp/src/Ice/Direct.cpp | |
parent | todo (diff) | |
download | ice-a60d11c20942109604735dc617576dbecdc8d23b.tar.bz2 ice-a60d11c20942109604735dc617576dbecdc8d23b.tar.xz ice-a60d11c20942109604735dc617576dbecdc8d23b.zip |
started with context, current
Diffstat (limited to 'cpp/src/Ice/Direct.cpp')
-rw-r--r-- | cpp/src/Ice/Direct.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/cpp/src/Ice/Direct.cpp b/cpp/src/Ice/Direct.cpp index 9a9a6e9109c..f36d44f1f5d 100644 --- a/cpp/src/Ice/Direct.cpp +++ b/cpp/src/Ice/Direct.cpp @@ -20,23 +20,25 @@ using namespace Ice; using namespace IceInternal; IceInternal::Direct::Direct(const ObjectAdapterPtr& adapter, const ReferencePtr& ref, const char* operation) : - _adapter(adapter), - _reference(ref), - _operation(operation) + _adapter(adapter) { + _current.identity = ref->identity; + _current.facet = ref->facet; + _current.operation = operation; + try { - _servant = _adapter->identityToServant(_reference->identity); + _servant = _adapter->identityToServant(_current.identity); if (!_servant) { - string::size_type pos = _reference->identity.find('#'); + string::size_type pos = _current.identity.find('#'); if (pos != string::npos) { - _locator = _adapter->findServantLocator(_reference->identity.substr(0, pos)); + _locator = _adapter->findServantLocator(_current.identity.substr(0, pos)); if (_locator) { - _servant = _locator->locate(_adapter, _reference->identity, _operation, _cookie); + _servant = _locator->locate(_adapter, _current, _cookie); } } } @@ -46,7 +48,7 @@ IceInternal::Direct::Direct(const ObjectAdapterPtr& adapter, const ReferencePtr& _locator = _adapter->findServantLocator(""); if (_locator) { - _servant = _locator->locate(_adapter, _reference->identity, _operation, _cookie); + _servant = _locator->locate(_adapter, _current, _cookie); } } @@ -63,7 +65,7 @@ IceInternal::Direct::Direct(const ObjectAdapterPtr& adapter, const ReferencePtr& { if (_locator && _servant) { - _locator->finished(_adapter, _reference->identity, _operation, _servant, _cookie); + _locator->finished(_adapter, _current, _servant, _cookie); } throw; } @@ -78,7 +80,7 @@ IceInternal::Direct::~Direct() { if (_locator && _servant) { - _locator->finished(_adapter, _reference->identity, _operation, _servant, _cookie); + _locator->finished(_adapter, _current, _servant, _cookie); } } |