Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/CMakeLists.txt b/CMakeLists.txt
- index 887bbb3..fb8d51b 100644
- --- a/CMakeLists.txt
- +++ b/CMakeLists.txt
- @@ -1,6 +1,6 @@
- cmake_minimum_required(VERSION 3.5)
- -project(rosidl_typesupport_c)
- +project(rosidl_typesupport_common)
- # Default to C11
- if(NOT CMAKE_C_STANDARD)
- @@ -29,40 +29,59 @@ ament_export_include_directories(include)
- ament_python_install_package(${PROJECT_NAME})
- -add_library(${PROJECT_NAME} SHARED
- - src/identifier.c
- - src/message_type_support_dispatch.cpp
- - src/service_type_support_dispatch.cpp
- - src/type_support_dispatch.cpp)
- -if(Poco_FOUND)
- - target_compile_definitions(${PROJECT_NAME}
- - PRIVATE "ROSIDL_TYPESUPPORT_C_USE_POCO")
- -endif()
- -if(WIN32)
- - target_compile_definitions(${PROJECT_NAME}
- - PRIVATE "ROSIDL_TYPESUPPORT_C_BUILDING_DLL")
- -endif()
- -target_include_directories(${PROJECT_NAME}
- - PUBLIC
- - include ${Poco_INCLUDE_DIRS}
- -)
- -target_link_libraries(${PROJECT_NAME} ${Poco_LIBRARIES})
- -ament_target_dependencies(${PROJECT_NAME} "rosidl_generator_c")
- -ament_export_libraries(${PROJECT_NAME})
- +set(common_name "rosidl_typesupport")
- +string(TOUPPER ${PROJECT_NAME} project_name_upper)
- +
- +#ament_export_libraries(${PROJECT_NAME}_c ${PROJECT_NAME}_cpp)
- +set(lib_list ${PROJECT_NAME}_c ${PROJECT_NAME}_cpp)
- +
- +ament_export_libraries(${lib_list})
- if(BUILD_TESTING)
- find_package(ament_lint_auto REQUIRED)
- ament_lint_auto_find_test_dependencies()
- endif()
- -
- ament_package(
- - CONFIG_EXTRAS "rosidl_typesupport_c-extras.cmake.in"
- + CONFIG_EXTRAS "${PROJECT_NAME}_c-extras.cmake.in"
- + "${PROJECT_NAME}_cpp-extras.cmake.in"
- )
- -install(
- - PROGRAMS bin/rosidl_typesupport_c
- - DESTINATION lib/rosidl_typesupport_c
- -)
- +foreach(lib_name ${lib_list})
- + string(TOUPPER ${lib_name} lib_name_upper)
- + add_library(${lib_name} SHARED
- + src/identifier.cpp
- + src/message_type_support_dispatch.cpp
- + src/service_type_support_dispatch.cpp
- + src/type_support_dispatch.cpp)
- + if(Poco_FOUND)
- + target_compile_definitions(${lib_name}
- + PRIVATE "${project_name_upper}_USE_POCO")
- + endif()
- + if(WIN32)
- + target_compile_definitions(${lib_name}
- + PRIVATE "${project_name_upper}_BUILDING_DLL")
- + endif()
- + target_include_directories(${lib_name}
- + PUBLIC
- + include ${Poco_INCLUDE_DIRS}
- + )
- + target_link_libraries(${lib_name} ${Poco_LIBRARIES})
- + target_compile_definitions(${lib_name} PRIVATE "${lib_name_upper}")
- +
- + ament_target_dependencies(${lib_name} "rosidl_generator_c")
- +
- + install(
- + PROGRAMS bin/${PROJECT_NAME}
- + DESTINATION lib/${lib_name}
- + )
- + install(
- + TARGETS ${lib_name}
- + ARCHIVE DESTINATION lib
- + LIBRARY DESTINATION lib
- + RUNTIME DESTINATION bin
- + )
- +endforeach()
- +
- install(
- DIRECTORY cmake resource
- DESTINATION share/${PROJECT_NAME}
- @@ -71,9 +90,3 @@ install(
- DIRECTORY include/
- DESTINATION include
- )
- -install(
- - TARGETS ${PROJECT_NAME}
- - ARCHIVE DESTINATION lib
- - LIBRARY DESTINATION lib
- - RUNTIME DESTINATION bin
- -)
- diff --git a/README.md b/README.md
- new file mode 100644
- index 0000000..a8c7a34
- --- /dev/null
- +++ b/README.md
- @@ -0,0 +1,3 @@
- +# WARNING
- +
- +Here be Dragons
- diff --git a/bin/rosidl_typesupport_common b/bin/rosidl_typesupport_common
- new file mode 100644
- index 0000000..b30cb97
- --- /dev/null
- +++ b/bin/rosidl_typesupport_common
- @@ -0,0 +1,36 @@
- +#!/usr/bin/env python3
- +
- +import argparse
- +import sys
- +
- +from rosidl_parser import UnknownMessageType
- +from rosidl_typesupport_common import generate_common
- +
- +
- +def main(argv=sys.argv[1:]):
- + parser = argparse.ArgumentParser(
- + description='Generate the C and C++ type support to handle ROS messages.',
- + formatter_class=argparse.ArgumentDefaultsHelpFormatter)
- + parser.add_argument(
- + '--generator-arguments-file',
- + required=True,
- + help='The location of the file containing the generator arguments')
- + parser.add_argument(
- + '--typesupports',
- + required=True,
- + nargs='+',
- + help='The typesupports to be used')
- + args = parser.parse_args(argv)
- +
- + try:
- + return generate_common(
- + args.generator_arguments_file,
- + args.typesupports,
- + )
- + except UnknownMessageType as e:
- + print(str(e), file=sys.stderr)
- + return 1
- +
- +
- +if __name__ == '__main__':
- + sys.exit(main())
- diff --git a/cmake/rosidl_typesupport_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_c_generate_interfaces.cmake
- index de9194b..625d65c 100644
- --- a/cmake/rosidl_typesupport_c_generate_interfaces.cmake
- +++ b/cmake/rosidl_typesupport_c_generate_interfaces.cmake
- @@ -99,7 +99,7 @@ if(WIN32)
- target_compile_definitions(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- PRIVATE "ROSIDL_GENERATOR_C_BUILDING_DLL_${PROJECT_NAME}")
- target_compile_definitions(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- - PRIVATE "ROSIDL_TYPESUPPORT_C_BUILDING_DLL_${PROJECT_NAME}")
- + PRIVATE "ROSIDL_TYPESUPPORT_COMMON_C_BUILDING_DLL_${PROJECT_NAME}")
- endif()
- set_target_properties(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- diff --git a/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake
- new file mode 100644
- index 0000000..0942fc6
- --- /dev/null
- +++ b/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake
- @@ -0,0 +1,170 @@
- +# Copyright 2016 Open Source Robotics Foundation, Inc.
- +#
- +# Licensed under the Apache License, Version 2.0 (the "License");
- +# you may not use this file except in compliance with the License.
- +# You may obtain a copy of the License at
- +#
- +# http://www.apache.org/licenses/LICENSE-2.0
- +#
- +# Unless required by applicable law or agreed to in writing, software
- +# distributed under the License is distributed on an "AS IS" BASIS,
- +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +# See the License for the specific language governing permissions and
- +# limitations under the License.
- +
- +set(_output_path
- + "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_cpp/${PROJECT_NAME}")
- +set(_generated_files "")
- +foreach(_idl_file ${rosidl_generate_interfaces_IDL_FILES})
- + get_filename_component(_parent_folder "${_idl_file}" DIRECTORY)
- + get_filename_component(_parent_folder "${_parent_folder}" NAME)
- + if(_parent_folder STREQUAL "msg" OR _parent_folder STREQUAL "srv")
- + get_filename_component(_msg_name "${_idl_file}" NAME_WE)
- + string_camel_case_to_lower_case_underscore("${_msg_name}" _header_name)
- + list(APPEND _generated_files
- + "${_output_path}/${_parent_folder}/${_header_name}__type_support.cpp"
- + )
- + else()
- + message(FATAL_ERROR "Interface file with unknown parent folder: ${_idl_file}")
- + endif()
- +endforeach()
- +
- +set(_dependency_files "")
- +set(_dependencies "")
- +foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES})
- + foreach(_idl_file ${${_pkg_name}_INTERFACE_FILES})
- + get_filename_component(_extension "${_idl_file}" EXT)
- + if(_extension STREQUAL ".msg")
- + set(_abs_idl_file "${${_pkg_name}_DIR}/../${_idl_file}")
- + normalize_path(_abs_idl_file "${_abs_idl_file}")
- + list(APPEND _dependency_files "${_abs_idl_file}")
- + list(APPEND _dependencies "${_pkg_name}:${_abs_idl_file}")
- + endif()
- + endforeach()
- +endforeach()
- +
- +set(target_dependencies
- + "${rosidl_typesupport_cpp_BIN}"
- + ${rosidl_typesupport_cpp_GENERATOR_FILES}
- + "${rosidl_typesupport_cpp_TEMPLATE_DIR}/msg__type_support.cpp.em"
- + "${rosidl_typesupport_cpp_TEMPLATE_DIR}/srv__type_support.cpp.em"
- + ${rosidl_generate_interfaces_IDL_FILES}
- + ${_dependency_files})
- +foreach(dep ${target_dependencies})
- + if(NOT EXISTS "${dep}")
- + message(FATAL_ERROR "Target dependency '${dep}' does not exist")
- + endif()
- +endforeach()
- +
- +set(generator_arguments_file "${CMAKE_BINARY_DIR}/rosidl_typesupport_cpp__arguments.json")
- +rosidl_write_generator_arguments(
- + "${generator_arguments_file}"
- + PACKAGE_NAME "${PROJECT_NAME}"
- + ROS_INTERFACE_FILES "${rosidl_generate_interfaces_IDL_FILES}"
- + ROS_INTERFACE_DEPENDENCIES "${_dependencies}"
- + OUTPUT_DIR "${_output_path}"
- + TEMPLATE_DIR "${rosidl_typesupport_cpp_TEMPLATE_DIR}"
- + TARGET_DEPENDENCIES ${target_dependencies}
- +)
- +
- +get_used_typesupports(typesupports "rosidl_typesupport_cpp")
- +add_custom_command(
- + OUTPUT ${_generated_files}
- + COMMAND ${PYTHON_EXECUTABLE} ${rosidl_typesupport_cpp_BIN}
- + --generator-arguments-file "${generator_arguments_file}"
- + --typesupports ${typesupports}
- + DEPENDS ${target_dependencies}
- + COMMENT "Generating C++ type support dispatch for ROS interfaces"
- + VERBATIM
- +)
- +
- +set(_target_suffix "__rosidl_typesupport_cpp")
- +
- +add_library(${rosidl_generate_interfaces_TARGET}${_target_suffix} SHARED ${_generated_files})
- +if(rosidl_generate_interfaces_LIBRARY_NAME)
- + set_target_properties(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + PROPERTIES OUTPUT_NAME "${rosidl_generate_interfaces_LIBRARY_NAME}${_target_suffix}")
- +endif()
- +if(WIN32)
- + target_compile_definitions(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + PRIVATE "ROSIDL_TYPESUPPORT_COMMON_CPP_BUILDING_DLL")
- +endif()
- +set_target_properties(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + PROPERTIES CXX_STANDARD 14)
- +
- +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- + set_target_properties(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + PROPERTIES COMPILE_OPTIONS -Wall -Wextra -Wpedantic)
- +endif()
- +target_include_directories(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + PUBLIC
- + ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_cpp
- +)
- +
- +# if only a single typesupport is used this package will directly reference it
- +# therefore it needs to link against the selected typesupport
- +if(NOT typesupports MATCHES ";")
- + target_include_directories(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + PUBLIC
- + "${CMAKE_CURRENT_BINARY_DIR}/${typesupports}")
- + target_link_libraries(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + ${rosidl_generate_interfaces_TARGET}__${typesupports})
- +elseif(NOT rosidl_typesupport_cpp_SUPPORTS_POCO)
- + message(FATAL_ERROR "Multiple typesupports but Poco was not available when "
- + "rosidl_typesupport_cpp was built")
- +endif()
- +
- +ament_target_dependencies(${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + "rosidl_generator_c"
- + "rosidl_generator_cpp"
- + "rosidl_typesupport_cpp"
- + "rosidl_typesupport_interface")
- +foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES})
- + ament_target_dependencies(
- + ${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + ${_pkg_name})
- +endforeach()
- +
- +add_dependencies(
- + ${rosidl_generate_interfaces_TARGET}
- + ${rosidl_generate_interfaces_TARGET}${_target_suffix}
- +)
- +add_dependencies(
- + ${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + ${rosidl_generate_interfaces_TARGET}__cpp
- +)
- +
- +if(NOT rosidl_generate_interfaces_SKIP_INSTALL)
- + install(
- + TARGETS ${rosidl_generate_interfaces_TARGET}${_target_suffix}
- + ARCHIVE DESTINATION lib
- + LIBRARY DESTINATION lib
- + RUNTIME DESTINATION bin
- + )
- + ament_export_libraries(${rosidl_generate_interfaces_TARGET}${_target_suffix})
- +endif()
- +
- +if(BUILD_TESTING AND rosidl_generate_interfaces_ADD_LINTER_TESTS)
- + if(NOT _generated_files STREQUAL "")
- + find_package(ament_cmake_cppcheck REQUIRED)
- + ament_cppcheck(
- + TESTNAME "cppcheck_rosidl_typesupport_cpp"
- + "${_output_path}")
- +
- + find_package(ament_cmake_cpplint REQUIRED)
- + get_filename_component(_cpplint_root "${_output_path}" DIRECTORY)
- + ament_cpplint(
- + TESTNAME "cpplint_rosidl_typesupport_cpp"
- + # the generated code might contain longer lines for templated types
- + MAX_LINE_LENGTH 999
- + ROOT "${_cpplint_root}"
- + "${_output_path}")
- +
- + find_package(ament_cmake_uncrustify REQUIRED)
- + ament_uncrustify(
- + TESTNAME "uncrustify_rosidl_typesupport_cpp"
- + # the generated code might contain longer lines for templated types
- + MAX_LINE_LENGTH 999
- + "${_output_path}")
- + endif()
- +endif()
- diff --git a/include/rosidl_typesupport_c/identifier.h b/include/rosidl_typesupport_c/identifier.h
- deleted file mode 100644
- index e5aece9..0000000
- --- a/include/rosidl_typesupport_c/identifier.h
- +++ /dev/null
- @@ -1,32 +0,0 @@
- -// Copyright 2016 Open Source Robotics Foundation, Inc.
- -//
- -// Licensed under the Apache License, Version 2.0 (the "License");
- -// you may not use this file except in compliance with the License.
- -// You may obtain a copy of the License at
- -//
- -// http://www.apache.org/licenses/LICENSE-2.0
- -//
- -// Unless required by applicable law or agreed to in writing, software
- -// distributed under the License is distributed on an "AS IS" BASIS,
- -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -// See the License for the specific language governing permissions and
- -// limitations under the License.
- -
- -#ifndef ROSIDL_TYPESUPPORT_C__IDENTIFIER_H_
- -#define ROSIDL_TYPESUPPORT_C__IDENTIFIER_H_
- -
- -#include "rosidl_typesupport_c/visibility_control.h"
- -
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- -
- -ROSIDL_TYPESUPPORT_C_PUBLIC
- -extern const char * rosidl_typesupport_c__typesupport_identifier;
- -
- -#if __cplusplus
- -}
- -#endif
- -
- -#endif // ROSIDL_TYPESUPPORT_C__IDENTIFIER_H_
- diff --git a/include/rosidl_typesupport_c/message_type_support_dispatch.h b/include/rosidl_typesupport_c/message_type_support_dispatch.h
- deleted file mode 100644
- index c2c0a8a..0000000
- --- a/include/rosidl_typesupport_c/message_type_support_dispatch.h
- +++ /dev/null
- @@ -1,36 +0,0 @@
- -// Copyright 2016 Open Source Robotics Foundation, Inc.
- -//
- -// Licensed under the Apache License, Version 2.0 (the "License");
- -// you may not use this file except in compliance with the License.
- -// You may obtain a copy of the License at
- -//
- -// http://www.apache.org/licenses/LICENSE-2.0
- -//
- -// Unless required by applicable law or agreed to in writing, software
- -// distributed under the License is distributed on an "AS IS" BASIS,
- -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -// See the License for the specific language governing permissions and
- -// limitations under the License.
- -
- -#ifndef ROSIDL_TYPESUPPORT_C__MESSAGE_TYPE_SUPPORT_DISPATCH_H_
- -#define ROSIDL_TYPESUPPORT_C__MESSAGE_TYPE_SUPPORT_DISPATCH_H_
- -
- -#include "rosidl_generator_c/message_type_support_struct.h"
- -
- -#include "rosidl_typesupport_c/visibility_control.h"
- -
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- -
- -ROSIDL_TYPESUPPORT_C_PUBLIC
- -const rosidl_message_type_support_t *
- -rosidl_typesupport_c__get_message_typesupport_handle_function(
- - const rosidl_message_type_support_t * handle, const char * identifier);
- -
- -#if __cplusplus
- -}
- -#endif
- -
- -#endif // ROSIDL_TYPESUPPORT_C__MESSAGE_TYPE_SUPPORT_DISPATCH_H_
- diff --git a/include/rosidl_typesupport_c/service_type_support_dispatch.h b/include/rosidl_typesupport_c/service_type_support_dispatch.h
- deleted file mode 100644
- index c109089..0000000
- --- a/include/rosidl_typesupport_c/service_type_support_dispatch.h
- +++ /dev/null
- @@ -1,36 +0,0 @@
- -// Copyright 2016 Open Source Robotics Foundation, Inc.
- -//
- -// Licensed under the Apache License, Version 2.0 (the "License");
- -// you may not use this file except in compliance with the License.
- -// You may obtain a copy of the License at
- -//
- -// http://www.apache.org/licenses/LICENSE-2.0
- -//
- -// Unless required by applicable law or agreed to in writing, software
- -// distributed under the License is distributed on an "AS IS" BASIS,
- -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -// See the License for the specific language governing permissions and
- -// limitations under the License.
- -
- -#ifndef ROSIDL_TYPESUPPORT_C__SERVICE_TYPE_SUPPORT_DISPATCH_H_
- -#define ROSIDL_TYPESUPPORT_C__SERVICE_TYPE_SUPPORT_DISPATCH_H_
- -
- -#include "rosidl_generator_c/service_type_support.h"
- -
- -#include "rosidl_typesupport_c/visibility_control.h"
- -
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- -
- -ROSIDL_TYPESUPPORT_C_PUBLIC
- -const rosidl_service_type_support_t *
- -rosidl_typesupport_c__get_service_typesupport_handle_function(
- - const rosidl_service_type_support_t * handle, const char * identifier);
- -
- -#if __cplusplus
- -}
- -#endif
- -
- -#endif // ROSIDL_TYPESUPPORT_C__SERVICE_TYPE_SUPPORT_DISPATCH_H_
- diff --git a/include/rosidl_typesupport_c/type_support_map.h b/include/rosidl_typesupport_c/type_support_map.h
- deleted file mode 100644
- index df48abb..0000000
- --- a/include/rosidl_typesupport_c/type_support_map.h
- +++ /dev/null
- @@ -1,41 +0,0 @@
- -// Copyright 2016 Open Source Robotics Foundation, Inc.
- -//
- -// Licensed under the Apache License, Version 2.0 (the "License");
- -// you may not use this file except in compliance with the License.
- -// You may obtain a copy of the License at
- -//
- -// http://www.apache.org/licenses/LICENSE-2.0
- -//
- -// Unless required by applicable law or agreed to in writing, software
- -// distributed under the License is distributed on an "AS IS" BASIS,
- -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -// See the License for the specific language governing permissions and
- -// limitations under the License.
- -
- -#ifndef ROSIDL_TYPESUPPORT_C__TYPE_SUPPORT_MAP_H_
- -#define ROSIDL_TYPESUPPORT_C__TYPE_SUPPORT_MAP_H_
- -
- -#include <cstddef>
- -
- -#ifdef __cplusplus
- -extern "C"
- -{
- -#endif
- -
- -typedef struct type_support_map_t
- -{
- - // TODO(dirk-thomas) const should not be defined for the fields
- - // but should be set for the struct when it is being used
- - // same for rosidl_message_type_support_t et al
- - const size_t size;
- - const char * package_name;
- - const char * const * typesupport_identifier;
- - const char * const * symbol_name;
- - void ** data;
- -} type_support_map_t;
- -
- -#ifdef __cplusplus
- -}
- -#endif
- -
- -#endif // ROSIDL_TYPESUPPORT_C__TYPE_SUPPORT_MAP_H_
- diff --git a/include/rosidl_typesupport_c/visibility_control.h b/include/rosidl_typesupport_c/visibility_control.h
- deleted file mode 100644
- index b891953..0000000
- --- a/include/rosidl_typesupport_c/visibility_control.h
- +++ /dev/null
- @@ -1,56 +0,0 @@
- -// Copyright 2016 Open Source Robotics Foundation, Inc.
- -//
- -// Licensed under the Apache License, Version 2.0 (the "License");
- -// you may not use this file except in compliance with the License.
- -// You may obtain a copy of the License at
- -//
- -// http://www.apache.org/licenses/LICENSE-2.0
- -//
- -// Unless required by applicable law or agreed to in writing, software
- -// distributed under the License is distributed on an "AS IS" BASIS,
- -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -// See the License for the specific language governing permissions and
- -// limitations under the License.
- -
- -#ifndef ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- -#define ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- -
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- -
- -// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
- -// https://gcc.gnu.org/wiki/Visibility
- -
- -#if defined _WIN32 || defined __CYGWIN__
- - #ifdef __GNUC__
- - #define ROSIDL_TYPESUPPORT_C_EXPORT __attribute__ ((dllexport))
- - #define ROSIDL_TYPESUPPORT_C_IMPORT __attribute__ ((dllimport))
- - #else
- - #define ROSIDL_TYPESUPPORT_C_EXPORT __declspec(dllexport)
- - #define ROSIDL_TYPESUPPORT_C_IMPORT __declspec(dllimport)
- - #endif
- - #ifdef ROSIDL_TYPESUPPORT_C_BUILDING_DLL
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC ROSIDL_TYPESUPPORT_C_EXPORT
- - #else
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC ROSIDL_TYPESUPPORT_C_IMPORT
- - #endif
- - #define ROSIDL_TYPESUPPORT_C_LOCAL
- -#else
- - #define ROSIDL_TYPESUPPORT_C_EXPORT __attribute__ ((visibility("default")))
- - #define ROSIDL_TYPESUPPORT_C_IMPORT
- - #if __GNUC__ >= 4
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC __attribute__ ((visibility("default")))
- - #define ROSIDL_TYPESUPPORT_C_LOCAL __attribute__ ((visibility("hidden")))
- - #else
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC
- - #define ROSIDL_TYPESUPPORT_C_LOCAL
- - #endif
- -#endif
- -
- -#if __cplusplus
- -}
- -#endif
- -
- -#endif // ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- diff --git a/include/rosidl_typesupport_common/identifier.h b/include/rosidl_typesupport_common/identifier.h
- new file mode 100644
- index 0000000..fb7e2a8
- --- /dev/null
- +++ b/include/rosidl_typesupport_common/identifier.h
- @@ -0,0 +1,41 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#ifndef ROSIDL_TYPESUPPORT_COMMON__IDENTIFIER_H_
- +#define ROSIDL_TYPESUPPORT_COMMON__IDENTIFIER_H_
- +
- +#include <rosidl_typesupport_common/namespace.h>
- +#include <rosidl_typesupport_common/visibility_control.h>
- +
- +#ifdef ROSIDL_TYPESUPPORT_COMMON_C
- +
- +NS_BEGIN
- +
- +ROSIDL_TYPESUPPORT_COMMON_PUBLIC
- +extern const char * NS_ROSIDL_TYPESUPPORT(typesupport_identifier);
- +
- +NS_END
- +
- +#else
- +
- +NS_BEGIN
- +
- +ROSIDL_TYPESUPPORT_COMMON_IMPORT
- +extern const char * typesupport_identifier;
- +
- +NS_END
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON_C
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON__IDENTIFIER_H_
- diff --git a/include/rosidl_typesupport_common/message_type_support_dispatch.h b/include/rosidl_typesupport_common/message_type_support_dispatch.h
- new file mode 100644
- index 0000000..93b8026
- --- /dev/null
- +++ b/include/rosidl_typesupport_common/message_type_support_dispatch.h
- @@ -0,0 +1,36 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#ifndef ROSIDL_TYPESUPPORT_COMMON__MESSAGE_TYPE_SUPPORT_DISPATCH_H_
- +#define ROSIDL_TYPESUPPORT_COMMON__MESSAGE_TYPE_SUPPORT_DISPATCH_H_
- +
- +#include "rosidl_generator_c/message_type_support_struct.h"
- +
- +#include <rosidl_typesupport_common/namespace.h>
- +#include <rosidl_typesupport_common/visibility_control.h>
- +
- +NS_BEGIN
- +
- +ROSIDL_TYPESUPPORT_COMMON_PUBLIC
- +const rosidl_message_type_support_t *
- +#if ROSIDL_TYPESUPPORT_COMMON_C
- +NS_ROSIDL_TYPESUPPORT(get_message_typesupport_handle_function)(
- +#else
- + get_message_typesupport_handle_function (
- +#endif
- + const rosidl_message_type_support_t * handle, const char * identifier);
- +
- +NS_END
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON__MESSAGE_TYPE_SUPPORT_DISPATCH_H_
- diff --git a/include/rosidl_typesupport_common/namespace.h b/include/rosidl_typesupport_common/namespace.h
- new file mode 100644
- index 0000000..ae6dad1
- --- /dev/null
- +++ b/include/rosidl_typesupport_common/namespace.h
- @@ -0,0 +1,45 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#ifndef ROSIDL_TYPESUPPORT_COMMON__NAMESPACE_H_
- +#define ROSIDL_TYPESUPPORT_COMMON__NAMESPACE_H_
- +
- +#if __cplusplus
- +namespace rosidl_typesupport_common {}
- +#endif
- +
- +#define _ADD_C_NAMESPACE_(namespace, name) namespace ## __ ## name
- +#define _ADD_CPP_NAMESPACE_(namespace, name) namespace :: name
- +
- +#define NS_ROSIDL_TYPESUPPORT_C(name) _ADD_C_NAMESPACE_ (rosidl_typesupport_common, name)
- +#define NS_ROSIDL_TYPESUPPORT_CPP(name) _ADD_CPP_NAMESPACE_(rosidl_typesupport_common, name)
- +
- +#if defined (ROSIDL_TYPESUPPORT_COMMON_CPP)
- + #define NS_ROSIDL_TYPESUPPORT(name) NS_ROSIDL_TYPESUPPORT_CPP(name)
- + #define ROSIDL_TYPESUPPORT_STRING "rosidl_typesupport_cpp"
- + #define NS_BEGIN namespace rosidl_typesupport_common {
- + #define NS_END } // namespace rosidl_typesupport_common
- +#elif defined (ROSIDL_TYPESUPPORT_COMMON_C)
- + #define NS_ROSIDL_TYPESUPPORT(name) NS_ROSIDL_TYPESUPPORT_C(name)
- + #define ROSIDL_TYPESUPPORT_STRING "rosidl_typesupport_c"
- + #if __cplusplus
- + #define NS_BEGIN extern "C" {
- + #define NS_END } // extern "C"
- + #else
- + #define NS_BEGIN
- + #define NS_END
- + #endif
- +#endif
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON__NAMESPACE_H_
- diff --git a/include/rosidl_typesupport_common/service_type_support_dispatch.h b/include/rosidl_typesupport_common/service_type_support_dispatch.h
- new file mode 100644
- index 0000000..396746c
- --- /dev/null
- +++ b/include/rosidl_typesupport_common/service_type_support_dispatch.h
- @@ -0,0 +1,36 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#ifndef ROSIDL_TYPESUPPORT_COMMON__SERVICE_TYPE_SUPPORT_DISPATCH_H_
- +#define ROSIDL_TYPESUPPORT_COMMON__SERVICE_TYPE_SUPPORT_DISPATCH_H_
- +
- +#include "rosidl_generator_c/service_type_support.h"
- +
- +#include <rosidl_typesupport_common/namespace.h>
- +#include <rosidl_typesupport_common/visibility_control.h>
- +
- +NS_BEGIN
- +
- +ROSIDL_TYPESUPPORT_COMMON_PUBLIC
- +const rosidl_service_type_support_t *
- +#if ROSIDL_TYPESUPPORT_COMMON_C
- +NS_ROSIDL_TYPESUPPORT(get_service_typesupport_handle_function)(
- +#else
- + get_service_typesupport_handle_function (
- +#endif
- + const rosidl_service_type_support_t * handle, const char * identifier);
- +
- +NS_END
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON__SERVICE_TYPE_SUPPORT_DISPATCH_H_
- diff --git a/include/rosidl_typesupport_common/type_support_map.h b/include/rosidl_typesupport_common/type_support_map.h
- new file mode 100644
- index 0000000..e1d4d16
- --- /dev/null
- +++ b/include/rosidl_typesupport_common/type_support_map.h
- @@ -0,0 +1,41 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#ifndef ROSIDL_TYPESUPPORT_COMMON__TYPE_SUPPORT_MAP_H_
- +#define ROSIDL_TYPESUPPORT_COMMON__TYPE_SUPPORT_MAP_H_
- +
- +#include <cstddef>
- +
- +#ifdef __cplusplus
- +extern "C"
- +{
- +#endif
- +
- +typedef struct type_support_map_t
- +{
- + // TODO(dirk-thomas) const should not be defined for the fields
- + // but should be set for the struct when it is being used
- + // same for rosidl_message_type_support_t et al
- + const size_t size;
- + const char * package_name;
- + const char * const * typesupport_identifier;
- + const char * const * symbol_name;
- + void ** data;
- +} type_support_map_t;
- +
- +#ifdef __cplusplus
- +}
- +#endif
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON__TYPE_SUPPORT_MAP_H_
- diff --git a/include/rosidl_typesupport_common/visibility_control.h b/include/rosidl_typesupport_common/visibility_control.h
- new file mode 100644
- index 0000000..b253f93
- --- /dev/null
- +++ b/include/rosidl_typesupport_common/visibility_control.h
- @@ -0,0 +1,56 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#ifndef ROSIDL_TYPESUPPORT_COMMON__VISIBILITY_CONTROL_H_
- +#define ROSIDL_TYPESUPPORT_COMMON__VISIBILITY_CONTROL_H_
- +
- +#if __cplusplus
- +extern "C"
- +{
- +#endif
- +
- +// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
- +// https://gcc.gnu.org/wiki/Visibility
- +
- +#if defined _WIN32 || defined __CYGWIN__
- + #ifdef __GNUC__
- + #define ROSIDL_TYPESUPPORT_COMMON_EXPORT __attribute__ ((dllexport))
- + #define ROSIDL_TYPESUPPORT_COMMON_IMPORT __attribute__ ((dllimport))
- + #else
- + #define ROSIDL_TYPESUPPORT_COMMON_EXPORT __declspec(dllexport)
- + #define ROSIDL_TYPESUPPORT_COMMON_IMPORT __declspec(dllimport)
- + #endif
- + #ifdef ROSIDL_TYPESUPPORT_COMMON_BUILDING_DLL
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC ROSIDL_TYPESUPPORT_COMMON_EXPORT
- + #else
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC ROSIDL_TYPESUPPORT_COMMON_IMPORT
- + #endif
- + #define ROSIDL_TYPESUPPORT_COMMON_LOCAL
- +#else
- + #define ROSIDL_TYPESUPPORT_COMMON_EXPORT __attribute__ ((visibility("default")))
- + #define ROSIDL_TYPESUPPORT_COMMON_IMPORT
- + #if __GNUC__ >= 4
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC __attribute__ ((visibility("default")))
- + #define ROSIDL_TYPESUPPORT_COMMON_LOCAL __attribute__ ((visibility("hidden")))
- + #else
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC
- + #define ROSIDL_TYPESUPPORT_COMMON_LOCAL
- + #endif
- +#endif
- +
- +#if __cplusplus
- +}
- +#endif
- +
- +#endif // ROSIDL_TYPESUPPORT_COMMON__VISIBILITY_CONTROL_H_
- diff --git a/package.xml b/package.xml
- index c361c8c..8e36457 100644
- --- a/package.xml
- +++ b/package.xml
- @@ -1,9 +1,9 @@
- <?xml version="1.0"?>
- <?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
- <package format="2">
- - <name>rosidl_typesupport_c</name>
- + <name>rosidl_typesupport_common</name>
- <version>0.0.3</version>
- - <description>Generate the type support for C messages.</description>
- + <description>Generate the type support for C and C++ messages.</description>
- <license>Apache License 2.0</license>
- diff --git a/resource/msg__type_support.cpp.em b/resource/msg__type_support.cpp.em
- index 41e5316..0a93857 100644
- --- a/resource/msg__type_support.cpp.em
- +++ b/resource/msg__type_support.cpp.em
- @@ -1,4 +1,4 @@
- -// generated from rosidl_typesupport_c/resource/msg__type_support.cpp.em
- +// generated from rosidl_typesupport_common/resource/msg__type_support.cpp.em
- // generated code does not contain a copyright notice
- @#######################################################################
- @@ -19,15 +19,15 @@
- #include "rosidl_generator_c/message_type_support_struct.h"
- -#include "@(spec.base_type.pkg_name)/msg/rosidl_typesupport_c__visibility_control.h"
- +#include "@(spec.base_type.pkg_name)/msg/rosidl_typesupport_common__visibility_control.h"
- #include "@(spec.base_type.pkg_name)/@(subfolder)/@(get_header_filename_from_msg_name(spec.base_type.type))__struct.h"
- @[if len(type_supports) != 1]@
- -#include "rosidl_typesupport_c/identifier.h"
- -#include "rosidl_typesupport_c/message_type_support_dispatch.h"
- -#include "rosidl_typesupport_c/type_support_map.h"
- +#include "rosidl_typesupport_common/identifier.h"
- +#include "rosidl_typesupport_common/message_type_support_dispatch.h"
- +#include "rosidl_typesupport_common/type_support_map.h"
- @[end if]@
- -#include "rosidl_typesupport_c/visibility_control.h"
- +#include "rosidl_typesupport_common/visibility_control.h"
- @[if len(type_supports) != 1]@
- #include "rosidl_typesupport_interface/macros.h"
- @[end if]@
- @@ -39,7 +39,7 @@ namespace @(spec.base_type.pkg_name)
- namespace @(subfolder)
- {
- -namespace rosidl_typesupport_c
- +namespace rosidl_typesupport_common
- {
- typedef struct _type_support_ids_t
- @@ -99,7 +99,7 @@ static const rosidl_message_type_support_t @(spec.base_type.type)_message_type_s
- rosidl_typesupport_c__get_message_typesupport_handle_function,
- };
- -} // namespace rosidl_typesupport_c
- +} // namespace rosidl_typesupport_common
- } // namespace @(subfolder)
- @@ -114,11 +114,11 @@ extern "C"
- {
- #endif
- -ROSIDL_TYPESUPPORT_C_EXPORT_@(spec.base_type.pkg_name)
- +ROSIDL_TYPESUPPORT_COMMON_EXPORT_@(spec.base_type.pkg_name)
- const rosidl_message_type_support_t *
- -ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, @(spec.base_type.pkg_name), @(subfolder), @(spec.base_type.type))() {
- +ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_common, @(spec.base_type.pkg_name), @(subfolder), @(spec.base_type.type))() {
- @[if len(type_supports) != 1]@
- - return &::@(spec.base_type.pkg_name)::@(subfolder)::rosidl_typesupport_c::@(spec.base_type.type)_message_type_support_handle;
- + return &::@(spec.base_type.pkg_name)::@(subfolder)::rosidl_typesupport_common::@(spec.base_type.type)_message_type_support_handle;
- @[else]@
- return ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(@(list(type_supports)[0]), @(spec.base_type.pkg_name), @(subfolder), @(spec.base_type.type))();
- @[end if]@
- diff --git a/resource/rosidl_typesupport_c__visibility_control.h.in b/resource/rosidl_typesupport_c__visibility_control.h.in
- deleted file mode 100644
- index 3da5ac5..0000000
- --- a/resource/rosidl_typesupport_c__visibility_control.h.in
- +++ /dev/null
- @@ -1,43 +0,0 @@
- -// generated from
- -// rosidl_typesupport_c/resource/rosidl_typesupport_c__visibility_control.h.in
- -// generated code does not contain a copyright notice
- -
- -#ifndef @PROJECT_NAME_UPPER@__MSG__ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- -#define @PROJECT_NAME_UPPER@__MSG__ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- -
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- -
- -// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
- -// https://gcc.gnu.org/wiki/Visibility
- -
- -#if defined _WIN32 || defined __CYGWIN__
- - #ifdef __GNUC__
- - #define ROSIDL_TYPESUPPORT_C_EXPORT_@PROJECT_NAME@ __attribute__ ((dllexport))
- - #define ROSIDL_TYPESUPPORT_C_IMPORT_@PROJECT_NAME@ __attribute__ ((dllimport))
- - #else
- - #define ROSIDL_TYPESUPPORT_C_EXPORT_@PROJECT_NAME@ __declspec(dllexport)
- - #define ROSIDL_TYPESUPPORT_C_IMPORT_@PROJECT_NAME@ __declspec(dllimport)
- - #endif
- - #ifdef ROSIDL_TYPESUPPORT_C_BUILDING_DLL_@PROJECT_NAME@
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC_@PROJECT_NAME@ ROSIDL_TYPESUPPORT_C_EXPORT_@PROJECT_NAME@
- - #else
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC_@PROJECT_NAME@ ROSIDL_TYPESUPPORT_C_IMPORT_@PROJECT_NAME@
- - #endif
- -#else
- - #define ROSIDL_TYPESUPPORT_C_EXPORT_@PROJECT_NAME@ __attribute__ ((visibility("default")))
- - #define ROSIDL_TYPESUPPORT_C_IMPORT_@PROJECT_NAME@
- - #if __GNUC__ >= 4
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC_@PROJECT_NAME@ __attribute__ ((visibility("default")))
- - #else
- - #define ROSIDL_TYPESUPPORT_C_PUBLIC_@PROJECT_NAME@
- - #endif
- -#endif
- -
- -#if __cplusplus
- -}
- -#endif
- -
- -#endif // @PROJECT_NAME_UPPER@__MSG__ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- diff --git a/resource/rosidl_typesupport_common__visibility_control.h.in b/resource/rosidl_typesupport_common__visibility_control.h.in
- new file mode 100644
- index 0000000..e577b2f
- --- /dev/null
- +++ b/resource/rosidl_typesupport_common__visibility_control.h.in
- @@ -0,0 +1,45 @@
- +// generated from
- +// rosidl_typesupport_c/resource/rosidl_typesupport_common__visibility_control.h.in
- +// generated code does not contain a copyright notice
- +
- +#ifndef @PROJECT_NAME_UPPER@__MSG__ROSIDL_TYPESUPPORT_COMMON__VISIBILITY_CONTROL_H_
- +#define @PROJECT_NAME_UPPER@__MSG__ROSIDL_TYPESUPPORT_COMMON__VISIBILITY_CONTROL_H_
- +
- +#if __cplusplus
- +extern "C"
- +{
- +#endif
- +
- +// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
- +// https://gcc.gnu.org/wiki/Visibility
- +
- +#if defined _WIN32 || defined __CYGWIN__
- + #ifdef __GNUC__
- + #define ROSIDL_TYPESUPPORT_COMMON_EXPORT_@PROJECT_NAME@ __attribute__ ((dllexport))
- + #define ROSIDL_TYPESUPPORT_COMMON_IMPORT_@PROJECT_NAME@ __attribute__ ((dllimport))
- + #else
- + #define ROSIDL_TYPESUPPORT_COMMON_EXPORT_@PROJECT_NAME@ __declspec(dllexport)
- + #define ROSIDL_TYPESUPPORT_COMMON_IMPORT_@PROJECT_NAME@ __declspec(dllimport)
- + #endif
- +
- + #ifdef ROSIDL_TYPESUPPORT_COMMON_BUILDING_DLL_@PROJECT_NAME@
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC_@PROJECT_NAME@ ROSIDL_TYPESUPPORT_C_EXPORT_@PROJECT_NAME@
- + #else
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC_@PROJECT_NAME@ ROSIDL_TYPESUPPORT_C_IMPORT_@PROJECT_NAME@
- + #endif
- +
- +#else
- + #define ROSIDL_TYPESUPPORT_COMMON_EXPORT_@PROJECT_NAME@ __attribute__ ((visibility("default")))
- + #define ROSIDL_TYPESUPPORT_COMMON_IMPORT_@PROJECT_NAME@
- + #if __GNUC__ >= 4
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC_@PROJECT_NAME@ __attribute__ ((visibility("default")))
- + #else
- + #define ROSIDL_TYPESUPPORT_COMMON_PUBLIC_@PROJECT_NAME@
- + #endif
- +#endif
- +
- +#if __cplusplus
- +}
- +#endif
- +
- +#endif // @PROJECT_NAME_UPPER@__MSG__ROSIDL_TYPESUPPORT_C__VISIBILITY_CONTROL_H_
- diff --git a/resource/srv__type_support.cpp.em b/resource/srv__type_support.cpp.em
- index c35ec42..05c2349 100644
- --- a/resource/srv__type_support.cpp.em
- +++ b/resource/srv__type_support.cpp.em
- @@ -1,4 +1,4 @@
- -// generated from rosidl_typesupport_c/resource/srv__type_support.cpp.em
- +// generated from rosidl_typesupport_common/resource/srv__type_support.cpp.em
- // generated code does not contain a copyright notice
- @#######################################################################
- @@ -16,12 +16,12 @@
- #include "rosidl_generator_c/service_type_support.h"
- -#include "@(spec.pkg_name)/msg/rosidl_typesupport_c__visibility_control.h"
- +#include "@(spec.pkg_name)/msg/rosidl_typesupport_common__visibility_control.h"
- @[if len(type_supports) != 1]@
- -#include "rosidl_typesupport_c/identifier.h"
- -#include "rosidl_typesupport_c/service_type_support_dispatch.h"
- -#include "rosidl_typesupport_c/type_support_map.h"
- +#include "rosidl_typesupport_common/identifier.h"
- +#include "rosidl_typesupport_common/service_type_support_dispatch.h"
- +#include "rosidl_typesupport_common/type_support_map.h"
- @[end if]@
- #include "rosidl_typesupport_interface/macros.h"
- @@ -32,7 +32,7 @@ namespace @(spec.pkg_name)
- namespace srv
- {
- -namespace rosidl_typesupport_c
- +namespace rosidl_typesupport_common
- {
- typedef struct _type_support_ids_t
- @@ -87,12 +87,12 @@ static const type_support_map_t _@(spec.srv_name)_service_typesupport_map = {
- };
- static const rosidl_service_type_support_t @(spec.srv_name)_service_type_support_handle = {
- - rosidl_typesupport_c__typesupport_identifier,
- + rosidl_typesupport_common__typesupport_identifier,
- reinterpret_cast<const type_support_map_t *>(&_@(spec.srv_name)_service_typesupport_map),
- - rosidl_typesupport_c__get_service_typesupport_handle_function,
- + rosidl_typesupport_common__get_service_typesupport_handle_function,
- };
- -} // namespace rosidl_typesupport_c
- +} // namespace rosidl_typesupport_common
- } // namespace srv
- @@ -107,11 +107,11 @@ extern "C"
- {
- #endif
- -ROSIDL_TYPESUPPORT_C_EXPORT_@(spec.pkg_name)
- +ROSIDL_TYPESUPPORT_COMMON_EXPORT_@(spec.pkg_name)
- const rosidl_service_type_support_t *
- -ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_c, @(spec.pkg_name), @(spec.srv_name))() {
- +ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_common, @(spec.pkg_name), @(spec.srv_name))() {
- @[if len(type_supports) != 1]@
- - return &::@(spec.pkg_name)::srv::rosidl_typesupport_c::@(spec.srv_name)_service_type_support_handle;
- + return &::@(spec.pkg_name)::srv::rosidl_typesupport_common::@(spec.srv_name)_service_type_support_handle;
- @[else]@
- return ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(@(list(type_supports)[0]), @(spec.pkg_name), @(spec.srv_name))();
- @[end if]@
- diff --git a/rosidl_typesupport_c-extras.cmake.in b/rosidl_typesupport_c-extras.cmake.in
- deleted file mode 100644
- index 45422bb..0000000
- --- a/rosidl_typesupport_c-extras.cmake.in
- +++ /dev/null
- @@ -1,28 +0,0 @@
- -# generated from
- -# rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in
- -
- -find_package(ament_cmake_core QUIET REQUIRED)
- -
- -include("${rosidl_typesupport_c_DIR}/get_used_typesupports.cmake")
- -
- -ament_register_extension(
- - "rosidl_generate_interfaces"
- - "rosidl_typesupport_c"
- - "rosidl_typesupport_c_generate_interfaces.cmake")
- -
- -set(rosidl_typesupport_c_SUPPORTS_POCO @Poco_FOUND@)
- -
- -set(rosidl_typesupport_c_BIN
- - "${rosidl_typesupport_c_DIR}/../../../lib/rosidl_typesupport_c/rosidl_typesupport_c")
- -normalize_path(rosidl_typesupport_c_BIN
- - "${rosidl_typesupport_c_BIN}")
- -
- -set(rosidl_typesupport_c_GENERATOR_FILES
- - "${rosidl_typesupport_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_c/__init__.py")
- -normalize_path(rosidl_typesupport_c_GENERATOR_FILES
- - "${rosidl_typesupport_c_GENERATOR_FILES}")
- -
- -set(rosidl_typesupport_c_TEMPLATE_DIR
- - "${rosidl_typesupport_c_DIR}/../resource")
- -normalize_path(rosidl_typesupport_c_TEMPLATE_DIR
- - "${rosidl_typesupport_c_TEMPLATE_DIR}")
- diff --git a/rosidl_typesupport_c/__init__.py b/rosidl_typesupport_c/__init__.py
- deleted file mode 100644
- index 63f9333..0000000
- --- a/rosidl_typesupport_c/__init__.py
- +++ /dev/null
- @@ -1,86 +0,0 @@
- -# Copyright 2016 Open Source Robotics Foundation, Inc.
- -#
- -# Licensed under the Apache License, Version 2.0 (the "License");
- -# you may not use this file except in compliance with the License.
- -# You may obtain a copy of the License at
- -#
- -# http://www.apache.org/licenses/LICENSE-2.0
- -#
- -# Unless required by applicable law or agreed to in writing, software
- -# distributed under the License is distributed on an "AS IS" BASIS,
- -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -# See the License for the specific language governing permissions and
- -# limitations under the License.
- -
- -import os
- -
- -from rosidl_cmake import convert_camel_case_to_lower_case_underscore
- -from rosidl_cmake import expand_template
- -from rosidl_cmake import extract_message_types
- -from rosidl_cmake import get_newest_modification_time
- -from rosidl_cmake import read_generator_arguments
- -from rosidl_parser import parse_message_file
- -from rosidl_parser import parse_service_file
- -from rosidl_parser import validate_field_types
- -
- -
- -def generate_c(generator_arguments_file, type_supports):
- - args = read_generator_arguments(generator_arguments_file)
- -
- - template_dir = args['template_dir']
- - mapping_msgs = {
- - os.path.join(template_dir, 'msg__type_support.cpp.em'):
- - '%s__type_support.cpp',
- - }
- - mapping_srvs = {
- - os.path.join(template_dir, 'srv__type_support.cpp.em'):
- - '%s__type_support.cpp',
- - }
- -
- - for template_file in mapping_msgs.keys():
- - assert os.path.exists(template_file), 'Could not find template: ' + template_file
- -
- - for template_file in mapping_srvs.keys():
- - assert os.path.exists(template_file), 'Could not find template: ' + template_file
- -
- - pkg_name = args['package_name']
- - known_msg_types = extract_message_types(
- - pkg_name, args['ros_interface_files'], args.get('ros_interface_dependencies', []))
- -
- - functions = {
- - 'get_header_filename_from_msg_name': convert_camel_case_to_lower_case_underscore,
- - }
- - latest_target_timestamp = get_newest_modification_time(args['target_dependencies'])
- -
- - for ros_interface_file in args['ros_interface_files']:
- - extension = os.path.splitext(ros_interface_file)[1]
- - subfolder = os.path.basename(os.path.dirname(ros_interface_file))
- - if extension == '.msg':
- - spec = parse_message_file(pkg_name, ros_interface_file)
- - validate_field_types(spec, known_msg_types)
- - for template_file, generated_filename in mapping_msgs.items():
- - generated_file = os.path.join(
- - args['output_dir'], subfolder, generated_filename %
- - convert_camel_case_to_lower_case_underscore(spec.base_type.type))
- -
- - data = {'spec': spec, 'subfolder': subfolder, 'type_supports': type_supports}
- - data.update(functions)
- - expand_template(
- - template_file, data, generated_file,
- - minimum_timestamp=latest_target_timestamp)
- -
- - elif extension == '.srv':
- - spec = parse_service_file(pkg_name, ros_interface_file)
- - validate_field_types(spec, known_msg_types)
- - for template_file, generated_filename in mapping_srvs.items():
- - generated_file = os.path.join(
- - args['output_dir'], subfolder, generated_filename %
- - convert_camel_case_to_lower_case_underscore(spec.srv_name))
- -
- - data = {'spec': spec, 'type_supports': type_supports}
- - data.update(functions)
- - expand_template(
- - template_file, data, generated_file,
- - minimum_timestamp=latest_target_timestamp)
- -
- - return 0
- diff --git a/rosidl_typesupport_common/__init__.py b/rosidl_typesupport_common/__init__.py
- new file mode 100644
- index 0000000..24cb5e8
- --- /dev/null
- +++ b/rosidl_typesupport_common/__init__.py
- @@ -0,0 +1,86 @@
- +# Copyright 2016 Open Source Robotics Foundation, Inc.
- +#
- +# Licensed under the Apache License, Version 2.0 (the "License");
- +# you may not use this file except in compliance with the License.
- +# You may obtain a copy of the License at
- +#
- +# http://www.apache.org/licenses/LICENSE-2.0
- +#
- +# Unless required by applicable law or agreed to in writing, software
- +# distributed under the License is distributed on an "AS IS" BASIS,
- +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +# See the License for the specific language governing permissions and
- +# limitations under the License.
- +
- +import os
- +
- +from rosidl_cmake import convert_camel_case_to_lower_case_underscore
- +from rosidl_cmake import expand_template
- +from rosidl_cmake import extract_message_types
- +from rosidl_cmake import get_newest_modification_time
- +from rosidl_cmake import read_generator_arguments
- +from rosidl_parser import parse_message_file
- +from rosidl_parser import parse_service_file
- +from rosidl_parser import validate_field_types
- +
- +
- +def generate_common(generator_arguments_file, type_supports):
- + args = read_generator_arguments(generator_arguments_file)
- +
- + template_dir = args['template_dir']
- + mapping_msgs = {
- + os.path.join(template_dir, 'msg__type_support.cpp.em'):
- + '%s__type_support.cpp',
- + }
- + mapping_srvs = {
- + os.path.join(template_dir, 'srv__type_support.cpp.em'):
- + '%s__type_support.cpp',
- + }
- +
- + for template_file in mapping_msgs.keys():
- + assert os.path.exists(template_file), 'Could not find template: ' + template_file
- +
- + for template_file in mapping_srvs.keys():
- + assert os.path.exists(template_file), 'Could not find template: ' + template_file
- +
- + pkg_name = args['package_name']
- + known_msg_types = extract_message_types(
- + pkg_name, args['ros_interface_files'], args.get('ros_interface_dependencies', []))
- +
- + functions = {
- + 'get_header_filename_from_msg_name': convert_camel_case_to_lower_case_underscore,
- + }
- + latest_target_timestamp = get_newest_modification_time(args['target_dependencies'])
- +
- + for ros_interface_file in args['ros_interface_files']:
- + extension = os.path.splitext(ros_interface_file)[1]
- + subfolder = os.path.basename(os.path.dirname(ros_interface_file))
- + if extension == '.msg':
- + spec = parse_message_file(pkg_name, ros_interface_file)
- + validate_field_types(spec, known_msg_types)
- + for template_file, generated_filename in mapping_msgs.items():
- + generated_file = os.path.join(
- + args['output_dir'], subfolder, generated_filename %
- + convert_camel_case_to_lower_case_underscore(spec.base_type.type))
- +
- + data = {'spec': spec, 'subfolder': subfolder, 'type_supports': type_supports}
- + data.update(functions)
- + expand_template(
- + template_file, data, generated_file,
- + minimum_timestamp=latest_target_timestamp)
- +
- + elif extension == '.srv':
- + spec = parse_service_file(pkg_name, ros_interface_file)
- + validate_field_types(spec, known_msg_types)
- + for template_file, generated_filename in mapping_srvs.items():
- + generated_file = os.path.join(
- + args['output_dir'], subfolder, generated_filename %
- + convert_camel_case_to_lower_case_underscore(spec.srv_name))
- +
- + data = {'spec': spec, 'type_supports': type_supports}
- + data.update(functions)
- + expand_template(
- + template_file, data, generated_file,
- + minimum_timestamp=latest_target_timestamp)
- +
- + return 0
- diff --git a/rosidl_typesupport_common_c-extras.cmake.in b/rosidl_typesupport_common_c-extras.cmake.in
- new file mode 100644
- index 0000000..f17429d
- --- /dev/null
- +++ b/rosidl_typesupport_common_c-extras.cmake.in
- @@ -0,0 +1,28 @@
- +# generated from
- +# rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in
- +
- +find_package(ament_cmake_core QUIET REQUIRED)
- +
- +include("${rosidl_typesupport_common_DIR}/get_used_typesupports.cmake")
- +
- +ament_register_extension(
- + "rosidl_generate_interfaces"
- + "rosidl_typesupport_c"
- + "rosidl_typesupport_c_generate_interfaces.cmake")
- +
- +set(rosidl_typesupport_c_SUPPORTS_POCO @Poco_FOUND@)
- +
- +set(rosidl_typesupport_c_BIN
- + "${rosidl_typesupport_c_DIR}/../../../lib/rosidl_typesupport_c/rosidl_typesupport_c")
- +normalize_path(rosidl_typesupport_c_BIN
- + "${rosidl_typesupport_c_BIN}")
- +
- +set(rosidl_typesupport_c_GENERATOR_FILES
- + "${rosidl_typesupport_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_c/__init__.py")
- +normalize_path(rosidl_typesupport_c_GENERATOR_FILES
- + "${rosidl_typesupport_c_GENERATOR_FILES}")
- +
- +set(rosidl_typesupport_c_TEMPLATE_DIR
- + "${rosidl_typesupport_c_DIR}/../resource")
- +normalize_path(rosidl_typesupport_c_TEMPLATE_DIR
- + "${rosidl_typesupport_c_TEMPLATE_DIR}")
- diff --git a/rosidl_typesupport_common_cpp-extras.cmake.in b/rosidl_typesupport_common_cpp-extras.cmake.in
- new file mode 100644
- index 0000000..790810e
- --- /dev/null
- +++ b/rosidl_typesupport_common_cpp-extras.cmake.in
- @@ -0,0 +1,26 @@
- +# generated from
- +# rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in
- +
- +find_package(ament_cmake_core QUIET REQUIRED)
- +
- +ament_register_extension(
- + "rosidl_generate_interfaces"
- + "rosidl_typesupport_cpp"
- + "rosidl_typesupport_cpp_generate_interfaces.cmake")
- +
- +set(rosidl_typesupport_cpp_SUPPORTS_POCO @Poco_FOUND@)
- +
- +set(rosidl_typesupport_cpp_BIN
- + "${rosidl_typesupport_cpp_DIR}/../../../lib/rosidl_typesupport_cpp/rosidl_typesupport_cpp")
- +normalize_path(rosidl_typesupport_cpp_BIN
- + "${rosidl_typesupport_cpp_BIN}")
- +
- +set(rosidl_typesupport_cpp_GENERATOR_FILES
- + "${rosidl_typesupport_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_cpp/__init__.py")
- +normalize_path(rosidl_typesupport_cpp_GENERATOR_FILES
- + "${rosidl_typesupport_cpp_GENERATOR_FILES}")
- +
- +set(rosidl_typesupport_cpp_TEMPLATE_DIR
- + "${rosidl_typesupport_cpp_DIR}/../resource")
- +normalize_path(rosidl_typesupport_cpp_TEMPLATE_DIR
- + "${rosidl_typesupport_cpp_TEMPLATE_DIR}")
- diff --git a/src/identifier.c b/src/identifier.c
- deleted file mode 100644
- index d982445..0000000
- --- a/src/identifier.c
- +++ /dev/null
- @@ -1,18 +0,0 @@
- -// Copyright 2016 Open Source Robotics Foundation, Inc.
- -//
- -// Licensed under the Apache License, Version 2.0 (the "License");
- -// you may not use this file except in compliance with the License.
- -// You may obtain a copy of the License at
- -//
- -// http://www.apache.org/licenses/LICENSE-2.0
- -//
- -// Unless required by applicable law or agreed to in writing, software
- -// distributed under the License is distributed on an "AS IS" BASIS,
- -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- -// See the License for the specific language governing permissions and
- -// limitations under the License.
- -
- -#include <rosidl_typesupport_c/visibility_control.h>
- -
- -ROSIDL_TYPESUPPORT_C_EXPORT
- -const char * rosidl_typesupport_c__typesupport_identifier = "rosidl_typesupport_c";
- diff --git a/src/identifier.cpp b/src/identifier.cpp
- new file mode 100644
- index 0000000..123f0eb
- --- /dev/null
- +++ b/src/identifier.cpp
- @@ -0,0 +1,20 @@
- +// Copyright 2016 Open Source Robotics Foundation, Inc.
- +//
- +// Licensed under the Apache License, Version 2.0 (the "License");
- +// you may not use this file except in compliance with the License.
- +// You may obtain a copy of the License at
- +//
- +// http://www.apache.org/licenses/LICENSE-2.0
- +//
- +// Unless required by applicable law or agreed to in writing, software
- +// distributed under the License is distributed on an "AS IS" BASIS,
- +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +// See the License for the specific language governing permissions and
- +// limitations under the License.
- +
- +#include <rosidl_typesupport_common/namespace.h>
- +#include <rosidl_typesupport_common/visibility_control.h>
- +#include <rosidl_typesupport_common/identifier.h>
- +
- +ROSIDL_TYPESUPPORT_COMMON_EXPORT
- +const char * NS_ROSIDL_TYPESUPPORT(typesupport_identifier) = ROSIDL_TYPESUPPORT_STRING;
- diff --git a/src/message_type_support_dispatch.cpp b/src/message_type_support_dispatch.cpp
- index 4130c8f..2ee8e99 100644
- --- a/src/message_type_support_dispatch.cpp
- +++ b/src/message_type_support_dispatch.cpp
- @@ -12,23 +12,24 @@
- // See the License for the specific language governing permissions and
- // limitations under the License.
- -#include "rosidl_typesupport_c/message_type_support_dispatch.h"
- +#include <rosidl_typesupport_common/namespace.h>
- +#include <rosidl_typesupport_common/message_type_support_dispatch.h>
- #include "type_support_dispatch.hpp"
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- +NS_BEGIN
- +#if defined (ROSIDL_TYPESUPPORT_COMMON_C)
- const rosidl_message_type_support_t *
- -rosidl_typesupport_c__get_message_typesupport_handle_function(
- +NS_ROSIDL_TYPESUPPORT(get_message_typesupport_handle_function)(
- + const rosidl_message_type_support_t * handle, const char * identifier)
- +#elif defined (ROSIDL_TYPESUPPORT_COMMON_CPP)
- +const rosidl_message_type_support_t * get_message_typesupport_handle_function(
- const rosidl_message_type_support_t * handle, const char * identifier)
- +#endif
- {
- - return rosidl_typesupport_c::get_typesupport_handle_function<
- + return rosidl_typesupport_common::get_typesupport_handle_function<
- rosidl_message_type_support_t>(handle, identifier);
- }
- -#if __cplusplus
- -}
- -#endif
- +NS_END
- diff --git a/src/service_type_support_dispatch.cpp b/src/service_type_support_dispatch.cpp
- index 8188425..c585074 100644
- --- a/src/service_type_support_dispatch.cpp
- +++ b/src/service_type_support_dispatch.cpp
- @@ -12,23 +12,24 @@
- // See the License for the specific language governing permissions and
- // limitations under the License.
- -#include "rosidl_typesupport_c/service_type_support_dispatch.h"
- +#include <rosidl_typesupport_common/namespace.h>
- +#include <rosidl_typesupport_common/service_type_support_dispatch.h>
- #include "type_support_dispatch.hpp"
- -#if __cplusplus
- -extern "C"
- -{
- -#endif
- +NS_BEGIN
- +#if defined (ROSIDL_TYPESUPPORT_COMMON_C)
- const rosidl_service_type_support_t *
- -rosidl_typesupport_c__get_service_typesupport_handle_function(
- +NS_ROSIDL_TYPESUPPORT(get_service_typesupport_handle_function)(
- + const rosidl_service_type_support_t * handle, const char * identifier)
- +#elif defined (ROSIDL_TYPESUPPORT_COMMON_CPP)
- +const rosidl_service_type_support_t * get_service_typesupport_handle_function(
- const rosidl_service_type_support_t * handle, const char * identifier)
- +#endif
- {
- - return rosidl_typesupport_c::get_typesupport_handle_function<
- + return rosidl_typesupport_common::get_typesupport_handle_function<
- rosidl_service_type_support_t>(handle, identifier);
- }
- -#if __cplusplus
- -}
- -#endif
- +NS_END
- diff --git a/src/type_support_dispatch.cpp b/src/type_support_dispatch.cpp
- index 055aba0..d9d0b26 100644
- --- a/src/type_support_dispatch.cpp
- +++ b/src/type_support_dispatch.cpp
- @@ -20,7 +20,7 @@
- #include <fstream>
- #include <sstream>
- -namespace rosidl_typesupport_c
- +namespace rosidl_typesupport_common
- {
- std::string find_library_path(const std::string & library_name)
- @@ -99,4 +99,4 @@ bool is_file_exist(const char * filename)
- return h.good();
- }
- -} // namespace rosidl_typesupport_c
- +} // namespace rosidl_typesupport_common
- diff --git a/src/type_support_dispatch.hpp b/src/type_support_dispatch.hpp
- index f1f168e..07c7e1d 100644
- --- a/src/type_support_dispatch.hpp
- +++ b/src/type_support_dispatch.hpp
- @@ -22,14 +22,14 @@
- #include <list>
- #include <string>
- -#ifdef ROSIDL_TYPESUPPORT_C_USE_POCO
- +#ifdef ROSIDL_TYPESUPPORT_COMMON_USE_POCO
- #include "Poco/SharedLibrary.h"
- #endif
- -#include "rosidl_typesupport_c/identifier.h"
- -#include "rosidl_typesupport_c/type_support_map.h"
- +#include <rosidl_typesupport_common/identifier.h>
- +#include <rosidl_typesupport_common/type_support_map.h>
- -namespace rosidl_typesupport_c
- +namespace rosidl_typesupport_common
- {
- std::string find_library_path(const std::string & library_name);
- @@ -51,8 +51,8 @@ get_typesupport_handle_function(
- return handle;
- }
- -#ifdef ROSIDL_TYPESUPPORT_C_USE_POCO
- - if (handle->typesupport_identifier == rosidl_typesupport_c__typesupport_identifier) {
- +#ifdef ROSIDL_TYPESUPPORT_COMMON_USE_POCO
- + if (handle->typesupport_identifier == NS_ROSIDL_TYPESUPPORT(typesupport_identifier)) {
- const type_support_map_t * map = \
- static_cast<const type_support_map_t *>(handle->data);
- for (size_t i = 0; i < map->size; ++i) {
- @@ -92,6 +92,6 @@ get_typesupport_handle_function(
- return nullptr;
- }
- -} // namespace rosidl_typesupport_c
- +} // namespace rosidl_typesupport_common
- #endif // TYPE_SUPPORT_DISPATCH_HPP_
Advertisement
Add Comment
Please, Sign In to add comment