Where ParameterServer determines parameter type while filling XmlRpcValue?
Example code:
include <ros/ros.h>
int main(int argc, char** argv) {
ros::init(argc, argv, "paramtype");
ros::NodeHandle nh;
XmlRpc::XmlRpcValue value;
nh.getParam("/ns", value);
std::cout << value.toXml() << std::endl;
return 0;
}
Example launch:
<launch>
<rosparam ns="/ns">
abc: 2
def: 3.14
</rosparam>
...
</launch>
Output is:
<value><struct><member><name>abc</name><value><i4>2</i4></value></member><member><name>def</name><value><double>3.1400000000000001</double></value></member></struct></value>
Launch file is just a text. How parameters types was determinated? I would like to see the code, but I can't find it. Please give me a link to related source code. Of cource I can make my own code for the conversion, but I want to find the code called inside the getParam method.