diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-06-09 14:33:56 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-06-09 14:33:56 +0000 |
commit | dd4155ec2f0c543061e3a08d0938c5f8aff227c7 (patch) | |
tree | 5feac0309fb01f2da479179ddc23d93a407ceae9 /cpp/src/IceGrid/NodeSessionI.cpp | |
parent | adding support classes for CLDC support (diff) | |
download | ice-dd4155ec2f0c543061e3a08d0938c5f8aff227c7.tar.bz2 ice-dd4155ec2f0c543061e3a08d0938c5f8aff227c7.tar.xz ice-dd4155ec2f0c543061e3a08d0938c5f8aff227c7.zip |
Added support for sessions and node/registry observers
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r-- | cpp/src/IceGrid/NodeSessionI.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp index b3a41d21488..838158e8719 100644 --- a/cpp/src/IceGrid/NodeSessionI.cpp +++ b/cpp/src/IceGrid/NodeSessionI.cpp @@ -14,8 +14,10 @@ using namespace std; using namespace IceGrid; -NodeSessionI::NodeSessionI(const DatabasePtr& database, const string& name, const NodePrx& node) : +NodeSessionI::NodeSessionI(const DatabasePtr& database, const RegistryObserverPrx& observer, const string& name, + const NodePrx& node) : _database(database), + _observer(observer), _name(name), _node(node), _startTime(IceUtil::Time::now()), @@ -27,9 +29,15 @@ NodeSessionI::NodeSessionI(const DatabasePtr& database, const string& name, cons { _database->addNode(name, this); - // - // TODO: Notify observers, node's up. - // + try + { + _observer->nodeUp(_name); + } + catch(const Ice::LocalException& ex) + { + // TODO: Log a warning? + cerr << ex << endl; + } } catch(...) { @@ -70,10 +78,15 @@ NodeSessionI::destroy(const Ice::Current& current) _database->removeNode(_name); - // - // TODO: Notify observers, node's down. - // - + try + { + _observer->nodeDown(_name); + } + catch(const Ice::LocalException&) + { + // TODO: Log a warning? + } + try { current.adapter->remove(current.id); |