bool test_live() { printf("\n*** test_live()\n"); Network yarp; yarp.setLocalMode(true); Demo client; Server server; Port client_port,server_port; client_port.open("/client"); server_port.open("/server"); yarp.connect(client_port.getName(),server_port.getName()); int x = 0; client.yarp().attachAsClient(client_port); server.yarp().attachAsServer(server_port); x = client.add_one(99); printf("Result %d\n", x); client.test_void(200); client.test_void(201); x = client.add_one(100); printf("Result %d\n", x); client.test_1way(200); client.test_1way(201); x = client.add_one(101); printf("Result %d\n", x); return (x==102); }
bool add_one() { printf("\n*** add_one()\n"); ClientPeek client_peek; Demo client; client.yarp().attachAsClient(client_peek); client.add_one(14); Server server; Bottle bot("[add] [one] 14"); DummyConnector con; bot.write(con.getWriter()); server.read(con.getReader()); bot.read(con.getReader()); printf("Result is %s\n", bot.toString().c_str()); if (bot.get(0).asInt() != 15) return false; bot.fromString("[add] [one] 15"); DummyConnector con2; bot.write(con2.getWriter()); server.read(con2.getReader()); bot.read(con2.getReader()); printf("Result is %s\n", bot.toString().c_str()); if (bot.get(0).asInt() != 16) return false; return true; }
bool test_live_rpc() { printf("\n*** test_live_rpc()\n"); Network yarp; yarp.setLocalMode(true); Demo client; Server server; Port client_port,server_port; client_port.open("/client"); server_port.open("/server"); yarp.connect(client_port.getName(),server_port.getName()); int x = 0; client.yarp().attachAsClient(client_port); server.yarp().attachAsServer(server_port); // Check regular RPC works, even with oneways Bottle cmd, reply; cmd.fromString("[add] [one] 5"); client_port.write(cmd,reply); printf("Cmd %s reply %s\n", cmd.toString().c_str(), reply.toString().c_str()); if (reply.get(0).asInt()!=6) return false; cmd.fromString("[test] [void] 5"); client_port.write(cmd,reply); printf("Cmd %s reply %s\n", cmd.toString().c_str(), reply.toString().c_str()); cmd.fromString("[add] [one] 6"); client_port.write(cmd,reply); printf("Cmd %s reply %s\n", cmd.toString().c_str(), reply.toString().c_str()); if (reply.get(0).asInt()!=7) return false; cmd.fromString("[test] [1way] 5"); client_port.write(cmd,reply); printf("Cmd %s reply %s\n", cmd.toString().c_str(), reply.toString().c_str()); cmd.fromString("[add] [one] 7"); client_port.write(cmd,reply); printf("Cmd %s reply %s\n", cmd.toString().c_str(), reply.toString().c_str()); if (reply.get(0).asInt()!=8) return false; return true; }
int main(int argc, char *argv[]) { Property config; config.fromCommand(argc,argv); Network yarp; Port client_port; std::string servername= config.find("server").asString().c_str(); client_port.open("/demo/client"); if (!yarp.connect("/demo/client",servername.c_str())) { std::cout << "Error! Could not connect to server " << servername << std::endl; return -1; } Demo demo; demo.yarp().attachAsClient(client_port); PointD point; point.x = 0; point.y = 0; point.z = 0; PointD offset; offset.x = 1; offset.y = 2; offset.z = 3; std::cout << "== get_answer ==" << std::endl; int answer=demo.get_answer(); std::cout << answer << std::endl; std::cout<<"== add_one =="<<std::endl; answer = demo.add_one(answer); std::cout << answer << std::endl; std::cout<<"== double_down =="<<std::endl; answer = demo.double_down(answer); std::cout << answer << std::endl; std::cout<<"== add_point =="<<std::endl; point = demo.add_point(point,offset); std::cout<<("== done! ==\n"); return 0; }
bool test_void() { printf("\n*** test_void()\n"); ClientPeek client_peek; Demo client; client.yarp().attachAsClient(client_peek); client.test_void(14); client.test_1way(14); Server server; Bottle bot("[test] [void] 14"); DummyConnector con; bot.write(con.getWriter()); server.read(con.getReader()); bot.read(con.getReader()); printf("Result is %s (should be blank)\n", bot.toString().c_str()); return bot.size()==0 && !bot.isNull(); }
int main(int argc, char *argv[]) { Property config; config.fromCommand(argc,argv); Network yarp; Port client_port; std::string servername= config.find("server").asString().c_str(); client_port.open("/demo/client"); if (!yarp.connect("/demo/client",servername.c_str())) { std::cout << "Error! Could not connect to server " << servername << std::endl; return -1; } Demo demo; demo.yarp().attachAsClient(client_port); // Let's chat with the server! std::cout << "Hey are you up and running?" << std::endl; while(!demo.is_running()) { std::cout << "No? Well... start!" << std::endl; demo.start(); } std::cout << "Wonderful! I have a question for you... so, what's the answer??" << std::endl; int32_t answer=demo.get_answer(); std::cout << "What?? " << answer << "?? Are you kidding??"; answer = demo.add_one(answer); std::cout << " It's definitely " << answer << "!!" << std::endl; demo.set_answer(answer); std::cout << "Got it? So, repeat after me: the answer is ... " << demo.get_answer() << "! Great!" << std::endl; std::cout << "Ok you can relax now, I'll leave you alone" << std::endl; demo.stop(); std::cout<<"Bye" << std::endl; return 0; }
bool test_defaults() { printf("\n*** test_defaults()\n"); Network yarp; yarp.setLocalMode(true); Demo client; Server server; Port client_port,server_port; client_port.open("/client"); server_port.open("/server"); yarp.connect(client_port.getName(),server_port.getName()); client.yarp().attachAsClient(client_port); server.yarp().attachAsServer(server_port); bool ok1 = client.test_defaults(); bool ok2 = client.test_defaults(14); printf("42 %d 14 %d\n", ok1?1:0, ok2?1:0); return ok1 && !ok2; }
int main(int argc, char *argv[]) { Property config; config.fromCommand(argc,argv); Network yarp; /* This port will be used to talk to the remote server*/ Port client_port; std::string servername= config.find("server").asString().c_str(); client_port.open("/demo/client"); /* connect to server */ if (!yarp.connect("/demo/client",servername.c_str())) { std::cout << "Error! Could not connect to server " << servername << std::endl; return -1; } /* Instatate proxy object and attach it to the port -- the proxy will use this port to talk to the server*/ Demo demo; demo.yarp().attachAsClient(client_port); /* Now we are ready to chat with the server! */ /* Notice that from now on we will invoke only the server methods declared in demo.thrift/Demo.h */ std::cout << "Hey are you up and running?" << std::endl; while(!demo.is_running()) { std::cout << "No? Well... start!" << std::endl; demo.start(); } std::cout << "Wonderful! I have a question for you... so, what's the answer??" << std::endl; int32_t answer=demo.get_answer(); std::cout << "What?? " << answer << "?? Are you kidding??"; answer = demo.add_one(answer); std::cout << " It's definitely " << answer << "!!" << std::endl; demo.set_answer(answer); std::cout << "Got it? So, repeat after me: the answer is ... " << demo.get_answer() << "! Great!" << std::endl; std::cout << "Ok you can relax now, I'll leave you alone" << std::endl; demo.stop(); std::cout<<"Bye" << std::endl; return 0; }
bool test_enums() { printf("\n*** test_enums()\n"); Network yarp; yarp.setLocalMode(true); Demo client; Server server; Port client_port,server_port; client_port.open("/client"); server_port.open("/server"); yarp.connect(client_port.getName(),server_port.getName()); client.yarp().attachAsClient(client_port); server.yarp().attachAsServer(server_port); std::vector<DemoEnum> lst1; lst1.push_back(ENUM1); lst1.push_back(ENUM2); std::vector<DemoEnum> lst2 = client.test_enum_vector(lst1); printf("lst1 %d lst2 %d\n", lst1.size(), lst2.size()); return (lst2.size()==3 && lst1[0]==lst2[0] && lst1[1]==lst2[1]); }