Exemplo n.º 1
0
bool _take(DDS_DynamicData * dynamic_data, void * ros_message,
  const void * untyped_members, const char * typesupport)
{
  if (using_introspection_c_typesupport(typesupport)) {
    return take<rosidl_typesupport_introspection_c__MessageMembers>(
      dynamic_data, ros_message, untyped_members);
  } else if (using_introspection_cpp_typesupport(typesupport)) {
    return take<rosidl_typesupport_introspection_cpp::MessageMembers>(
      dynamic_data, ros_message, untyped_members);
  }
  RMW_SET_ERROR_MSG("Unknown typesupport identifier")
  return false;
}
rmw_fastrtps_shared_cpp::TypeSupport *
_create_response_type_support(const void * untyped_members, const char * typesupport_identifier)
{
  if (using_introspection_c_typesupport(typesupport_identifier)) {
    auto members = static_cast<const rosidl_typesupport_introspection_c__ServiceMembers *>(
      untyped_members);
    return new ResponseTypeSupport_c(members);
  } else if (using_introspection_cpp_typesupport(typesupport_identifier)) {
    auto members = static_cast<const rosidl_typesupport_introspection_cpp::ServiceMembers *>(
      untyped_members);
    return new ResponseTypeSupport_cpp(members);
  }
  RMW_SET_ERROR_MSG("Unknown typesupport identifier");
  return nullptr;
}