int generate_cpp(int argc, char *argv[]) { bool is_service = false; Property p; string fname; p.fromCommand(argc,argv); bool verbose = p.check("verbose"); fname = argv[argc-1]; if (fname.rfind(".")!=string::npos) { string ext = fname.substr(fname.rfind("."),fname.length()); if (ext==".srv" || ext==".SRV") { is_service = true; } } if (is_service) { p.put("service",1); } RosTypeSearch env; RosType t; RosTypeCodeGenYarp gen; if (verbose) { env.setVerbose(); t.setVerbose(); gen.setVerbose(); } if (p.check("out")) { gen.setTargetDirectory(p.find("out").toString().c_str()); } configure_search(env,p); if (t.read(fname.c_str(),env,gen)) { RosTypeCodeGenState state; t.emitType(gen,state); t.cache(fname.c_str(),env,gen); } return 0; }
int main(int argc, char *argv[]) { if (argc<=1) { show_usage(); return 0; } if (std::string("help")==argv[1] || std::string("--help")==argv[1]) { show_usage(); return 0; } bool is_service = false; Property p; string fname; p.fromCommand(argc-1,argv); fname = argv[argc-1]; if (fname.rfind(".")!=string::npos) { string ext = fname.substr(fname.rfind("."),fname.length()); if (ext==".srv" || ext==".SRV") { is_service = true; } } RosTypeSearch env; RosType t; RosTypeCodeGenYarp gen; if (p.check("out")) { gen.setTargetDirectory(p.find("out").toString().c_str()); env.setTargetDirectory(gen.getTargetDirectory().c_str()); } env.lookForService(is_service); if (t.read(fname.c_str(),env,gen)) { RosTypeCodeGenState state; t.emitType(gen,state); } return 0; }