diff options
author | Joe George <joe@zeroc.com> | 2021-01-28 16:26:44 -0500 |
---|---|---|
committer | Joe George <joe@zeroc.com> | 2021-02-01 16:59:30 -0500 |
commit | 92a6531e409f2691d82591e185a92299d415fc0f (patch) | |
tree | 60c79e2a8f327b8f0b6ebc06b06f48a2e8086f6a /cpp/src/IceStorm/Admin.cpp | |
parent | Port Glacier2, IceBox, IceBridge, IceDB, IceXML, icegriddb (diff) | |
download | ice-92a6531e409f2691d82591e185a92299d415fc0f.tar.bz2 ice-92a6531e409f2691d82591e185a92299d415fc0f.tar.xz ice-92a6531e409f2691d82591e185a92299d415fc0f.zip |
IceGrid and IceStorm
Diffstat (limited to 'cpp/src/IceStorm/Admin.cpp')
-rw-r--r-- | cpp/src/IceStorm/Admin.cpp | 55 |
1 files changed, 23 insertions, 32 deletions
diff --git a/cpp/src/IceStorm/Admin.cpp b/cpp/src/IceStorm/Admin.cpp index 8307b04eb6a..63a54d1ac9d 100644 --- a/cpp/src/IceStorm/Admin.cpp +++ b/cpp/src/IceStorm/Admin.cpp @@ -15,15 +15,7 @@ using namespace std; using namespace IceInternal; -int run(const Ice::StringSeq&); - -Ice::CommunicatorPtr communicator; - -void -destroyCommunicator(int) -{ - communicator->destroy(); -} +int run(const shared_ptr<Ice::Communicator>&, const Ice::StringSeq&); int #ifdef _WIN32 @@ -41,18 +33,19 @@ main(int argc, char* argv[]) try { - Ice::CtrlCHandler ctrlCHandler; + IceUtil::CtrlCHandler ctrlCHandler; Ice::InitializationData id; Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); id.properties = Ice::createProperties(args); id.properties->setProperty("Ice.Warn.Endpoints", "0"); + Ice::CommunicatorHolder ich(id); - communicator = ich.communicator(); + auto communicator = ich.communicator(); - ctrlCHandler.setCallback(&destroyCommunicator); + ctrlCHandler.setCallback([communicator](int) { communicator->destroy(); }); - status = run(args); + status = run(communicator, args); } catch(const std::exception& ex) { @@ -77,7 +70,7 @@ usage(const string& name) } int -run(const Ice::StringSeq& args) +run(const shared_ptr<Ice::Communicator>& communicator, const Ice::StringSeq& args) { string commands; bool debug; @@ -125,29 +118,28 @@ run(const Ice::StringSeq& args) debug = opts.isSet("debug"); // The complete set of Ice::Identity -> manager proxies. - map<Ice::Identity, IceStorm::TopicManagerPrx> managers; - Ice::PropertiesPtr properties = communicator->getProperties(); - IceStorm::TopicManagerPrx defaultManager; + map<Ice::Identity, shared_ptr<IceStorm::TopicManagerPrx>> managers; + auto properties = communicator->getProperties(); + shared_ptr<IceStorm::TopicManagerPrx> defaultManager; - Ice::PropertyDict props = communicator->getProperties()->getPropertiesForPrefix("IceStormAdmin.TopicManager."); + auto props = communicator->getProperties()->getPropertiesForPrefix("IceStormAdmin.TopicManager."); { - for(Ice::PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p) + for(const auto& p : props) { // // Ignore proxy property settings. eg IceStormAdmin.TopicManager.*.LocatorCacheTimeout // - if(p->first.find('.', strlen("IceStormAdmin.TopicManager.")) == string::npos) + if(p.first.find('.', strlen("IceStormAdmin.TopicManager.")) == string::npos) { try { - IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::uncheckedCast( - communicator->propertyToProxy(p->first)); - managers.insert(map<Ice::Identity, IceStorm::TopicManagerPrx>::value_type( - manager->ice_getIdentity(), manager)); + auto manager = Ice::uncheckedCast<IceStorm::TopicManagerPrx>( + communicator->propertyToProxy(p.first)); + managers.insert({manager->ice_getIdentity(), manager}); } catch(const Ice::ProxyParseException&) { - consoleErr << args[0] << ": malformed proxy: " << p->second << endl; + consoleErr << args[0] << ": malformed proxy: " << p.second << endl; return 1; } } @@ -156,8 +148,7 @@ run(const Ice::StringSeq& args) string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(!managerProxy.empty()) { - defaultManager = IceStorm::TopicManagerPrx::uncheckedCast( - communicator->stringToProxy(managerProxy)); + defaultManager = Ice::uncheckedCast<IceStorm::TopicManagerPrx>(communicator->stringToProxy(managerProxy)); } else if(!managers.empty()) { @@ -175,7 +166,7 @@ run(const Ice::StringSeq& args) os << "IceStorm/Finder"; os << ":tcp" << (host.empty() ? "" : (" -h \"" + host + "\"")) << " -p " << port << " -t " << timeout; os << ":ssl" << (host.empty() ? "" : (" -h \"" + host + "\"")) << " -p " << port << " -t " << timeout; - IceStorm::FinderPrx finder = IceStorm::FinderPrx::uncheckedCast(communicator->stringToProxy(os.str())); + auto finder = Ice::uncheckedCast<IceStorm::FinderPrx>(communicator->stringToProxy(os.str())); try { defaultManager = finder->getTopicManager(); @@ -192,12 +183,12 @@ run(const Ice::StringSeq& args) return 1; } - IceStorm::ParserPtr p = IceStorm::Parser::createParser(communicator, defaultManager, managers); + IceStorm::Parser p(communicator, defaultManager, managers); int status = 0; if(!commands.empty()) // Commands were given { - int parseStatus = p->parse(commands, debug); + int parseStatus = p.parse(commands, debug); if(parseStatus == 1) { status = 1; @@ -205,9 +196,9 @@ run(const Ice::StringSeq& args) } else // No commands, let's use standard input { - p->showBanner(); + p.showBanner(); - int parseStatus = p->parse(stdin, debug); + int parseStatus = p.parse(stdin, debug); if(parseStatus == 1) { status = 1; |