diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-11-28 09:55:39 -0500 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-11-28 09:55:39 -0500 |
commit | 8e5dfe52de91d5f096b349c119b8d3bb8a16baf2 (patch) | |
tree | 88d4918f065b6c8ff396ddad4708a87a564f04d8 /cpp/src/IceGrid/AdminSessionI.cpp | |
parent | Fix a couple of typos (diff) | |
download | ice-8e5dfe52de91d5f096b349c119b8d3bb8a16baf2.tar.bz2 ice-8e5dfe52de91d5f096b349c119b8d3bb8a16baf2.tar.xz ice-8e5dfe52de91d5f096b349c119b8d3bb8a16baf2.zip |
First cut callback support
Diffstat (limited to 'cpp/src/IceGrid/AdminSessionI.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdminSessionI.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/AdminSessionI.cpp b/cpp/src/IceGrid/AdminSessionI.cpp index df4f2029657..4bf2c08e78a 100644 --- a/cpp/src/IceGrid/AdminSessionI.cpp +++ b/cpp/src/IceGrid/AdminSessionI.cpp @@ -73,7 +73,21 @@ AdminSessionI::_register(const SessionServantManagerPtr& servantManager, const I // This is supposed to be called after creation only, no need to synchronize. // _servantManager = servantManager; - Ice::ObjectPrx session = _servantManager->addSession(this, con, true); + + string category = ""; + + if(con != 0) + { + category = _database->getInstanceName() + "-" + IceUtil::generateUUID(); + + Ice::Identity templateId; + templateId.name = "pick-a-name"; + templateId.category = category; + + _adminCallbackTemplate = _registry->createAdminCallbackProxy(templateId); + } + + Ice::ObjectPrx session = _servantManager->addSession(this, con, category); _admin = AdminPrx::uncheckedCast(_servantManager->add(new AdminI(_database, _registry, this), this)); @@ -86,6 +100,12 @@ AdminSessionI::getAdmin(const Ice::Current& current) const return _admin; } +Ice::ObjectPrx +AdminSessionI::getAdminCallbackTemplate(const Ice::Current& current) const +{ + return _adminCallbackTemplate; +} + void AdminSessionI::setObservers(const RegistryObserverPrx& registryObserver, const NodeObserverPrx& nodeObserver, |