bool checkVectorExistInConfiguration(yarp::os::Bottle & bot, const std::string & name, const int expected_vec_size) { //std::cerr << " checkVectorExistInConfiguration(" << name // << " , " << expected_vec_size << " )" << std::endl; //std::cerr << "bot.check(name) : " << bot.check(name) << std::endl; //std::cerr << "bot.find(name).isList(): " << bot.find(name).isList() << std::endl; //std::cerr << "bot.find(name).asList()->size() : " << bot.find(name).asList()->size()<< std::endl; return (bot.check(name) && bot.find(name).isList() && bot.find(name).asList()->size() == expected_vec_size ); }
bool NameServiceOnTriples::apply(yarp::os::Bottle& cmd, yarp::os::Bottle& reply, yarp::os::Bottle& event, const yarp::os::Contact& remote) { ConstString key = cmd.get(0).toString(); ConstString prefix = " * "; access.wait(); if (key=="register") { lastRegister = cmd.get(1).asString().c_str(); } else if (key=="set") { if (cmd.get(1).asString()==lastRegister.c_str()) { prefix = " + "; } } else { lastRegister = ""; } if (!silent) { printf("%s%s\n", prefix.c_str(), cmd.toString().c_str()); } access.post(); TripleSource& mem = *db; //mem.begin(); mem.reset(); reply.clear(); NameTripleState act(cmd,reply,event,remote,mem); if (cmd.check("format")) { if (cmd.find("format")=="json") { act.bottleMode = true; } } if (key == "NAME_SERVER") { cmd = cmd.tail(); key = cmd.get(0).asString(); } if (key == "bot") { act.bottleMode = true; cmd = cmd.tail(); key = cmd.get(0).asString(); } if (key=="register") { return cmdRegister(act); } else if (key=="unregister") { return cmdUnregister(act); } else if (key=="query") { return cmdQuery(act); } else if (key=="list") { return cmdList(act); } else if (key=="set") { return cmdSet(act); } else if (key=="get") { return cmdGet(act); } else if (key=="check") { return cmdCheck(act); } else if (key=="route") { return cmdRoute(act); } else if (key=="gc") { return cmdGc(act); } else if (key=="help") { return cmdHelp(act); } else { // not understood act.reply.addString("old"); } //mem.end(); return true; }