diff options
author | Marc Laukien <marc@zeroc.com> | 2004-08-26 13:00:19 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-08-26 13:00:19 +0000 |
commit | 6eee09cec2a6d656dfbf314b246807a9426e4f8c (patch) | |
tree | b175559f170ab1392b280e57e4d26dc436268153 /cpp/src | |
parent | single server-side OA (diff) | |
download | ice-6eee09cec2a6d656dfbf314b246807a9426e4f8c.tar.bz2 ice-6eee09cec2a6d656dfbf314b246807a9426e4f8c.tar.xz ice-6eee09cec2a6d656dfbf314b246807a9426e4f8c.zip |
more glacier2
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Glacier2/RouterI.cpp | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/cpp/src/Glacier2/RouterI.cpp b/cpp/src/Glacier2/RouterI.cpp index c6d16731175..7162786f317 100644 --- a/cpp/src/Glacier2/RouterI.cpp +++ b/cpp/src/Glacier2/RouterI.cpp @@ -53,21 +53,30 @@ Glacier2::RouterI::RouterI(const ObjectAdapterPtr& clientAdapter, _clientProxy(clientAdapter->createProxy(stringToIdentity("dummy"))), _clientBlobject(new ClientBlobject(_communicator, _routingTable, "")) { - if(serverAdapter) + try { - ObjectPrx& serverProxy = const_cast<ObjectPrx&>(_serverProxy); - Identity ident; - ident.category.resize(20); - for(string::iterator p = ident.category.begin(); p != ident.category.end(); ++p) + if(serverAdapter) { - *p = static_cast<char>(33 + rand() % (127-33)); // We use ASCII 33-126 (from ! to ~, w/o space). + ObjectPrx& serverProxy = const_cast<ObjectPrx&>(_serverProxy); + Identity ident; + ident.name = "dummy"; + ident.category.resize(20); + for(string::iterator p = ident.category.begin(); p != ident.category.end(); ++p) + { + *p = static_cast<char>(33 + rand() % (127-33)); // We use ASCII 33-126 (from ! to ~, w/o space). + } + serverProxy = serverAdapter->createProxy(ident); + + ServerBlobjectPtr& serverBlobject = const_cast<ServerBlobjectPtr&>(_serverBlobject); + serverBlobject = new ServerBlobject(_communicator, transport); + serverAdapter->addServantLocator(new RouterLocator(serverBlobject), ident.category); + serverAdapter->activate(); } - serverProxy = serverAdapter->createProxy(ident); - - ServerBlobjectPtr& serverBlobject = const_cast<ServerBlobjectPtr&>(_serverBlobject); - serverBlobject = new ServerBlobject(_communicator, transport); - serverAdapter->addServantLocator(new RouterLocator(serverBlobject), ident.category); - serverAdapter->activate(); + } + catch(...) + { + destroy(); + throw; } } |