void Parser::topics(const list<string>& args) { if(args.size() > 1) { error("`topics' requires at most one argument (type `help' for more info)"); return; } try { TopicManagerPrx manager; if(args.size() == 0) { manager = _defaultManager; } else { manager = findManagerByCategory(args.front()); } TopicDict d = manager->retrieveAll(); for(TopicDict::iterator i = d.begin(); i != d.end(); ++i) { cout << i->first << endl; } } catch(const Exception& ex) { exception(ex); } }
void Parser::links(const list<string>& args) { if(args.size() > 1) { error("`links' requires at most one argument (type `help' for more info)"); return; } try { TopicManagerPrx manager; if(args.size() == 0) { manager = _defaultManager; } else { manager = findManagerByCategory(args.front()); } TopicDict d = manager->retrieveAll(); for(TopicDict::iterator i = d.begin(); i != d.end(); ++i) { LinkInfoSeq links = i->second->getLinkInfoSeq(); for(LinkInfoSeq::const_iterator p = links.begin(); p != links.end(); ++p) { cout << i->first << " to " << (*p).name << " with cost " << (*p).cost << endl; } } } catch(const Exception& ex) { exception(ex); } }