00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00033
00034
00035
00036
00037 #include <gtest/gtest.h>
00038 #include "ros/ros.h"
00039 #include "test_roscpp/TestStringString.h"
00040
00041 #include <vector>
00042
00043 bool add(test_roscpp::TestStringString::Request &req,
00044 test_roscpp::TestStringString::Response &res )
00045 {
00046 return true;
00047 }
00048
00049 bool add2(ros::ServiceEvent<test_roscpp::TestStringString::Request, test_roscpp::TestStringString::Response>& event)
00050 {
00051 return true;
00052 }
00053
00054 bool add3(ros::ServiceEvent<test_roscpp::TestStringString::Request, test_roscpp::TestStringString::Response>& event, const std::string& bound)
00055 {
00056 return true;
00057 }
00058
00059 struct A
00060 {
00061 bool add(test_roscpp::TestStringString::Request &req,
00062 test_roscpp::TestStringString::Response &res )
00063 {
00064 return true;
00065 }
00066
00067 bool add2(ros::ServiceEvent<test_roscpp::TestStringString::Request, test_roscpp::TestStringString::Response>& event)
00068 {
00069 return true;
00070 }
00071
00072 bool add3(ros::ServiceEvent<test_roscpp::TestStringString::Request, test_roscpp::TestStringString::Response>& event, const std::string& bound)
00073 {
00074 return true;
00075 }
00076 };
00077
00078 TEST(ServiceCallbackTypes, compile)
00079 {
00080 ros::NodeHandle n;
00081
00082 std::vector<ros::ServiceServer> srvs;
00083 srvs.push_back(n.advertiseService("add_two_ints", add));
00084 srvs.push_back(n.advertiseService("add_two_ints2", add2));
00085 srvs.push_back(n.advertiseService<ros::ServiceEvent<test_roscpp::TestStringString::Request, test_roscpp::TestStringString::Response> >("add_two_ints3", boost::bind(add3, _1, std::string("blah"))));
00086
00087 A a;
00088 srvs.push_back(n.advertiseService("add_two_ints10", &A::add, &a));
00089 srvs.push_back(n.advertiseService("add_two_ints11", &A::add2, &a));
00090 srvs.push_back(n.advertiseService<ros::ServiceEvent<test_roscpp::TestStringString::Request, test_roscpp::TestStringString::Response> >("add_two_ints12", boost::bind(&A::add3, &a, _1, std::string("blah"))));
00091 }
00092
00093 int main(int argc, char **argv)
00094 {
00095 testing::InitGoogleTest(&argc, argv);
00096
00097 ros::init( argc, argv, "subscription_callback_types" );
00098 ros::NodeHandle nh;
00099
00100 return RUN_ALL_TESTS();
00101 }