refactor typesupport
This commit is contained in:
		
							parent
							
								
									3688bb3215
								
							
						
					
					
						commit
						e38ac73c69
					
				
					 10 changed files with 142 additions and 166 deletions
				
			
		| 
						 | 
					@ -5,6 +5,8 @@ project(rclcpp)
 | 
				
			||||||
find_package(ament_cmake REQUIRED)
 | 
					find_package(ament_cmake REQUIRED)
 | 
				
			||||||
find_package(rcl_interfaces REQUIRED)
 | 
					find_package(rcl_interfaces REQUIRED)
 | 
				
			||||||
find_package(rmw REQUIRED)
 | 
					find_package(rmw REQUIRED)
 | 
				
			||||||
 | 
					find_package(rmw_implementation REQUIRED)
 | 
				
			||||||
 | 
					find_package(rmw_implementation_cmake REQUIRED)
 | 
				
			||||||
find_package(rosidl_generator_cpp REQUIRED)
 | 
					find_package(rosidl_generator_cpp REQUIRED)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(NOT WIN32)
 | 
					if(NOT WIN32)
 | 
				
			||||||
| 
						 | 
					@ -35,31 +37,37 @@ set(${PROJECT_NAME}_SRCS
 | 
				
			||||||
  src/rclcpp/service.cpp
 | 
					  src/rclcpp/service.cpp
 | 
				
			||||||
  src/rclcpp/subscription.cpp
 | 
					  src/rclcpp/subscription.cpp
 | 
				
			||||||
  src/rclcpp/timer.cpp
 | 
					  src/rclcpp/timer.cpp
 | 
				
			||||||
 | 
					  src/rclcpp/type_support.cpp
 | 
				
			||||||
  src/rclcpp/utilities.cpp
 | 
					  src/rclcpp/utilities.cpp
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
if(WIN32)
 | 
					
 | 
				
			||||||
  list(APPEND ${PROJECT_NAME}_SRCS src/rclcpp/windows_helper.cpp)
 | 
					macro(target)
 | 
				
			||||||
endif()
 | 
					  add_library(${PROJECT_NAME}${target_suffix} SHARED
 | 
				
			||||||
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SRCS})
 | 
					    ${${PROJECT_NAME}_SRCS})
 | 
				
			||||||
ament_target_dependencies(
 | 
					  ament_target_dependencies(${PROJECT_NAME}${target_suffix}
 | 
				
			||||||
  ${PROJECT_NAME}
 | 
					    "rcl_interfaces"
 | 
				
			||||||
  "rcl_interfaces"
 | 
					    "rmw"
 | 
				
			||||||
  "rmw"
 | 
					    "rosidl_generator_cpp"
 | 
				
			||||||
  "rosidl_generator_cpp"
 | 
					    "${rmw_implementation}")
 | 
				
			||||||
)
 | 
					
 | 
				
			||||||
# Causes the visibility macros to use dllexport rather than dllimport,
 | 
					  # Causes the visibility macros to use dllexport rather than dllimport,
 | 
				
			||||||
# which is appropriate when building the dll but not consuming it.
 | 
					  # which is appropriate when building the dll but not consuming it.
 | 
				
			||||||
# It also avoids using certain parts of the code that the consuming code must
 | 
					  target_compile_definitions(${PROJECT_NAME}${target_suffix}
 | 
				
			||||||
# use, but which the library cannot consume itself.
 | 
					    PRIVATE "RCLCPP_BUILDING_LIBRARY")
 | 
				
			||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE "RCLCPP_BUILDING_LIBRARY")
 | 
					
 | 
				
			||||||
if(APPLE)
 | 
					  install(
 | 
				
			||||||
  # Since the rmw_* symbols are unresolved at the time of building librclcpp,
 | 
					    TARGETS ${PROJECT_NAME}${target_suffix}
 | 
				
			||||||
  # tell the linker on OS X to dynamically look them up at runtime.
 | 
					    ARCHIVE DESTINATION lib
 | 
				
			||||||
  set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
 | 
					    LIBRARY DESTINATION lib
 | 
				
			||||||
endif()
 | 
					    RUNTIME DESTINATION bin
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					endmacro()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					call_for_each_rmw_implementation(target GENERATE_DEFAULT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ament_export_dependencies(rcl_interfaces)
 | 
					ament_export_dependencies(rcl_interfaces)
 | 
				
			||||||
ament_export_dependencies(rmw)
 | 
					ament_export_dependencies(rmw)
 | 
				
			||||||
 | 
					ament_export_dependencies(rmw_implementation)
 | 
				
			||||||
ament_export_dependencies(rosidl_generator_cpp)
 | 
					ament_export_dependencies(rosidl_generator_cpp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ament_export_include_directories(include)
 | 
					ament_export_include_directories(include)
 | 
				
			||||||
| 
						 | 
					@ -100,6 +108,11 @@ ament_package(
 | 
				
			||||||
  CONFIG_EXTRAS rclcpp-extras.cmake
 | 
					  CONFIG_EXTRAS rclcpp-extras.cmake
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(
 | 
				
			||||||
 | 
					  DIRECTORY cmake
 | 
				
			||||||
 | 
					  DESTINATION share/${PROJECT_NAME}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(
 | 
					install(
 | 
				
			||||||
  DIRECTORY include/
 | 
					  DIRECTORY include/
 | 
				
			||||||
  DESTINATION include
 | 
					  DESTINATION include
 | 
				
			||||||
| 
						 | 
					@ -109,10 +122,3 @@ install(
 | 
				
			||||||
  DIRECTORY src/
 | 
					  DIRECTORY src/
 | 
				
			||||||
  DESTINATION src/rclcpp
 | 
					  DESTINATION src/rclcpp
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					 | 
				
			||||||
install(
 | 
					 | 
				
			||||||
  TARGETS ${PROJECT_NAME}
 | 
					 | 
				
			||||||
  ARCHIVE DESTINATION lib
 | 
					 | 
				
			||||||
  LIBRARY DESTINATION lib
 | 
					 | 
				
			||||||
  RUNTIME DESTINATION bin
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										88
									
								
								rclcpp/cmake/get_rclcpp_information.cmake
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								rclcpp/cmake/get_rclcpp_information.cmake
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,88 @@
 | 
				
			||||||
 | 
					# Copyright 2015 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Get all information abut rclcpp for a specific RMW implementation.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# It sets the common variables _DEFINITIONS, _INCLUDE_DIRS and _LIBRARIES
 | 
				
			||||||
 | 
					# with the given prefix.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# :param rmw_implementation: the RMW implementation name
 | 
				
			||||||
 | 
					# :type target: string
 | 
				
			||||||
 | 
					# :param var_prefix: the prefix of all output variable names
 | 
				
			||||||
 | 
					# :type var_prefix: string
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					macro(get_rclcpp_information rmw_implementation var_prefix)
 | 
				
			||||||
 | 
					  # pretend to be a "package"
 | 
				
			||||||
 | 
					  # so that the variables can be used by various functions / macros
 | 
				
			||||||
 | 
					  set(${var_prefix}_FOUND TRUE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # include directories
 | 
				
			||||||
 | 
					  set(${var_prefix}_INCLUDE_DIRS
 | 
				
			||||||
 | 
					    "${rclcpp_DIR}/../../../include")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # libraries
 | 
				
			||||||
 | 
					  set(_libs)
 | 
				
			||||||
 | 
					  # search for library relative to this CMake file
 | 
				
			||||||
 | 
					  set(_library_target "rclcpp")
 | 
				
			||||||
 | 
					  get_available_rmw_implementations(_rmw_impls)
 | 
				
			||||||
 | 
					  list(LENGTH _rmw_impls _rmw_impls_length)
 | 
				
			||||||
 | 
					  if(_rmw_impls_length GREATER 1)
 | 
				
			||||||
 | 
					    set(_library_target "${_library_target}__${rmw_implementation}")
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					  set(_lib "NOTFOUND")
 | 
				
			||||||
 | 
					  find_library(
 | 
				
			||||||
 | 
					    _lib NAMES "${_library_target}"
 | 
				
			||||||
 | 
					    PATHS "${rclcpp_DIR}/../../../lib"
 | 
				
			||||||
 | 
					    NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					  if(NOT _lib)
 | 
				
			||||||
 | 
					    # warn about not existing library and ignore it
 | 
				
			||||||
 | 
					    message(FATAL_ERROR "Package 'rclcpp' doesn't contain the library '${_library_target}'")
 | 
				
			||||||
 | 
					  elseif(NOT IS_ABSOLUTE "${_lib}")
 | 
				
			||||||
 | 
					    # the found library must be an absolute path
 | 
				
			||||||
 | 
					    message(FATAL_ERROR "Package 'rclcpp' found the library '${_library_target}' at '${_lib}' which is not an absolute path")
 | 
				
			||||||
 | 
					  elseif(NOT EXISTS "${_lib}")
 | 
				
			||||||
 | 
					    # the found library must exist
 | 
				
			||||||
 | 
					    message(FATAL_ERROR "Package 'rclcpp' found the library '${_lib}' which doesn't exist")
 | 
				
			||||||
 | 
					  else()
 | 
				
			||||||
 | 
					    list(APPEND _libs "${_lib}")
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # dependencies
 | 
				
			||||||
 | 
					  set(_exported_dependencies
 | 
				
			||||||
 | 
					    "rcl_interfaces"
 | 
				
			||||||
 | 
					    "rmw"
 | 
				
			||||||
 | 
					    "${rmw_implementation}"
 | 
				
			||||||
 | 
					    "rosidl_generator_cpp")
 | 
				
			||||||
 | 
					  set(${var_prefix}_DEFINITIONS)
 | 
				
			||||||
 | 
					  foreach(_dep ${_exported_dependencies})
 | 
				
			||||||
 | 
					    if(NOT ${_dep}_FOUND)
 | 
				
			||||||
 | 
					      find_package("${_dep}" QUIET REQUIRED)
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					    if(${_dep}_DEFINITIONS)
 | 
				
			||||||
 | 
					      list_append_unique(${var_prefix}_DEFINITIONS "${${_dep}_DEFINITIONS}")
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					    if(${_dep}_INCLUDE_DIRS)
 | 
				
			||||||
 | 
					      list_append_unique(${var_prefix}_INCLUDE_DIRS "${${_dep}_INCLUDE_DIRS}")
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					    if(${_dep}_LIBRARIES)
 | 
				
			||||||
 | 
					      list(APPEND _libs "${${_dep}_LIBRARIES}")
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					  endforeach()
 | 
				
			||||||
 | 
					  if(_libs)
 | 
				
			||||||
 | 
					    ament_libraries_deduplicate(_libs "${_libs}")
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					  set(${var_prefix}_LIBRARIES "${_libs}")
 | 
				
			||||||
 | 
					endmacro()
 | 
				
			||||||
| 
						 | 
					@ -18,41 +18,57 @@
 | 
				
			||||||
#include "rosidl_generator_cpp/message_type_support_decl.hpp"
 | 
					#include "rosidl_generator_cpp/message_type_support_decl.hpp"
 | 
				
			||||||
#include "rosidl_generator_cpp/service_type_support_decl.hpp"
 | 
					#include "rosidl_generator_cpp/service_type_support_decl.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "rosidl_generator_cpp/message_type_support.hpp"
 | 
				
			||||||
 | 
					#include "rosidl_generator_cpp/service_type_support.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "rclcpp/visibility_control.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace rclcpp
 | 
					namespace rclcpp
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
namespace type_support
 | 
					namespace type_support
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					const rosidl_message_type_support_t *
 | 
				
			||||||
get_intra_process_message_msg_type_support();
 | 
					get_intra_process_message_msg_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					const rosidl_message_type_support_t *
 | 
				
			||||||
get_parameter_event_msg_type_support();
 | 
					get_parameter_event_msg_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					const rosidl_message_type_support_t *
 | 
				
			||||||
get_set_parameters_result_msg_type_support();
 | 
					get_set_parameters_result_msg_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					const rosidl_message_type_support_t *
 | 
				
			||||||
get_parameter_descriptor_msg_type_support();
 | 
					get_parameter_descriptor_msg_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					const rosidl_message_type_support_t *
 | 
				
			||||||
get_list_parameters_result_msg_type_support();
 | 
					get_list_parameters_result_msg_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					const rosidl_service_type_support_t *
 | 
				
			||||||
get_get_parameters_srv_type_support();
 | 
					get_get_parameters_srv_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					const rosidl_service_type_support_t *
 | 
				
			||||||
get_get_parameter_types_srv_type_support();
 | 
					get_get_parameter_types_srv_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					const rosidl_service_type_support_t *
 | 
				
			||||||
get_set_parameters_srv_type_support();
 | 
					get_set_parameters_srv_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					const rosidl_service_type_support_t *
 | 
				
			||||||
get_list_parameters_srv_type_support();
 | 
					get_list_parameters_srv_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					const rosidl_service_type_support_t *
 | 
				
			||||||
get_describe_parameters_srv_type_support();
 | 
					get_describe_parameters_srv_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RCLCPP_PUBLIC
 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					const rosidl_service_type_support_t *
 | 
				
			||||||
get_set_parameters_atomically_srv_type_support();
 | 
					get_set_parameters_atomically_srv_type_support();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,31 +24,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "rmw/rmw.h"
 | 
					#include "rmw/rmw.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if !defined(RCLCPP_BUILDING_LIBRARY)
 | 
					 | 
				
			||||||
// The following header is necessary inorder to get the correct rmw
 | 
					 | 
				
			||||||
// implementation specific message symbols.
 | 
					 | 
				
			||||||
// Any library or executable using librclcpp must include the header.
 | 
					 | 
				
			||||||
// However, librclcpp must not include it.
 | 
					 | 
				
			||||||
#include "rclcpp/type_support_def.hpp"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Anonymous namespace to prevent duplicate symbols across compile units.
 | 
					 | 
				
			||||||
namespace
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// This call to an rmw function is used to force the Linux linker to include
 | 
					 | 
				
			||||||
// the rmw implementation library in the user's executable.
 | 
					 | 
				
			||||||
// If this is not done, then only librclcpp is missing rmw symbols and when
 | 
					 | 
				
			||||||
// linking the next library or exectuable the linker will discard the rmw
 | 
					 | 
				
			||||||
// implementation shared library as unused.
 | 
					 | 
				
			||||||
// On OS X this isn't an issue because linking is done, by default, in a flat
 | 
					 | 
				
			||||||
// namespace, so when linking something that uses librclcpp, it will try to
 | 
					 | 
				
			||||||
// resolve the rclcpp symbols each time, taking them from the rmw implementation
 | 
					 | 
				
			||||||
// when it is available and not discarding it as unused during the link step.
 | 
					 | 
				
			||||||
static const char * __rmw_identifier = rmw_get_implementation_identifier();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}  // namespace
 | 
					 | 
				
			||||||
#endif  // !defined(RCLCPP_BUILDING_LIBRARY)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
 | 
					// This logic was borrowed (then namespaced) from the examples on the gcc wiki:
 | 
				
			||||||
//     https://gcc.gnu.org/wiki/Visibility
 | 
					//     https://gcc.gnu.org/wiki/Visibility
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,12 +11,13 @@
 | 
				
			||||||
  <build_export_depend>rmw</build_export_depend>
 | 
					  <build_export_depend>rmw</build_export_depend>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <build_depend>rcl_interfaces</build_depend>
 | 
					  <build_depend>rcl_interfaces</build_depend>
 | 
				
			||||||
  <!-- This ensures the rmw impls are built first. -->
 | 
					  <build_depend>rmw_implementation_cmake</build_depend>
 | 
				
			||||||
  <build_depend>rmw_implementation</build_depend>
 | 
					 | 
				
			||||||
  <build_depend>rosidl_generator_cpp</build_depend>
 | 
					  <build_depend>rosidl_generator_cpp</build_depend>
 | 
				
			||||||
  <build_export_depend>rcl_interfaces</build_export_depend>
 | 
					  <build_export_depend>rcl_interfaces</build_export_depend>
 | 
				
			||||||
  <build_export_depend>rosidl_generator_cpp</build_export_depend>
 | 
					  <build_export_depend>rosidl_generator_cpp</build_export_depend>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <depend>rmw_implementation</depend>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <test_depend>ament_cmake_gtest</test_depend>
 | 
					  <test_depend>ament_cmake_gtest</test_depend>
 | 
				
			||||||
  <test_depend>ament_lint_auto</test_depend>
 | 
					  <test_depend>ament_lint_auto</test_depend>
 | 
				
			||||||
  <test_depend>ament_lint_common</test_depend>
 | 
					  <test_depend>ament_lint_common</test_depend>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# copied from rclcpp/rclcpp-extras.cmake
 | 
					# copied from rclcpp/rclcpp-extras.cmake
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include("${rclcpp_DIR}/get_rclcpp_information.cmake")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(rclcpp_node_main_SRC "${rclcpp_DIR}/../../../src/rclcpp/node_main.cpp")
 | 
					set(rclcpp_node_main_SRC "${rclcpp_DIR}/../../../src/rclcpp/node_main.cpp")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function(rclcpp_create_node_main node_library_target)
 | 
					function(rclcpp_create_node_main node_library_target)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,43 +21,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "rclcpp/node.hpp"
 | 
					#include "rclcpp/node.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Specializations with references to unresolved symbols to delay evaluation until later.
 | 
					 | 
				
			||||||
// On Windows this is not necessary since it will be built against the rmw implementation directly.
 | 
					 | 
				
			||||||
#if !defined(WIN32)
 | 
					 | 
				
			||||||
namespace rosidl_generator_cpp
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					 | 
				
			||||||
get_message_type_support_handle<rcl_interfaces::msg::ParameterEvent>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_parameter_event_msg_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					 | 
				
			||||||
get_message_type_support_handle<rcl_interfaces::msg::SetParametersResult>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_set_parameters_result_msg_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					 | 
				
			||||||
get_message_type_support_handle<rcl_interfaces::msg::ParameterDescriptor>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_parameter_descriptor_msg_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					 | 
				
			||||||
get_message_type_support_handle<rcl_interfaces::msg::ListParametersResult>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_list_parameters_result_msg_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}  // namespace rosidl_generator_cpp
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
using rclcpp::node::Node;
 | 
					using rclcpp::node::Node;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Node::Node(const std::string & node_name, bool use_intra_process_comms)
 | 
					Node::Node(const std::string & node_name, bool use_intra_process_comms)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,57 +18,6 @@
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Specializations with references to unresolved symbols to delay evaluation until later.
 | 
					 | 
				
			||||||
// On Windows this is not necessary since it will be built against the rmw implementation directly.
 | 
					 | 
				
			||||||
#if !defined(WIN32)
 | 
					 | 
				
			||||||
namespace rosidl_generator_cpp
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					 | 
				
			||||||
get_service_type_support_handle<rcl_interfaces::srv::GetParameters>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_get_parameters_srv_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					 | 
				
			||||||
get_service_type_support_handle<rcl_interfaces::srv::GetParameterTypes>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_get_parameter_types_srv_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					 | 
				
			||||||
get_service_type_support_handle<rcl_interfaces::srv::SetParameters>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_set_parameters_srv_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					 | 
				
			||||||
get_service_type_support_handle<rcl_interfaces::srv::ListParameters>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_list_parameters_srv_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					 | 
				
			||||||
get_service_type_support_handle<rcl_interfaces::srv::DescribeParameters>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_describe_parameters_srv_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template<>
 | 
					 | 
				
			||||||
const rosidl_service_type_support_t *
 | 
					 | 
				
			||||||
get_service_type_support_handle<rcl_interfaces::srv::SetParametersAtomically>()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return rclcpp::type_support::get_set_parameters_atomically_srv_type_support();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}  // namespace rosidl_generator_cpp
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
using rclcpp::parameter_client::AsyncParametersClient;
 | 
					using rclcpp::parameter_client::AsyncParametersClient;
 | 
				
			||||||
using rclcpp::parameter_client::SyncParametersClient;
 | 
					using rclcpp::parameter_client::SyncParametersClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,9 +12,6 @@
 | 
				
			||||||
// See the License for the specific language governing permissions and
 | 
					// See the License for the specific language governing permissions and
 | 
				
			||||||
// limitations under the License.
 | 
					// limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef RCLCPP__TYPE_SUPPORT_DEF_HPP_
 | 
					 | 
				
			||||||
#define RCLCPP__TYPE_SUPPORT_DEF_HPP_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "rclcpp/type_support_decl.hpp"
 | 
					#include "rclcpp/type_support_decl.hpp"
 | 
				
			||||||
#include "rclcpp/visibility_control.hpp"
 | 
					#include "rclcpp/visibility_control.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,8 +26,6 @@
 | 
				
			||||||
#include "rcl_interfaces/srv/list_parameters.hpp"
 | 
					#include "rcl_interfaces/srv/list_parameters.hpp"
 | 
				
			||||||
#include "rcl_interfaces/srv/set_parameters.hpp"
 | 
					#include "rcl_interfaces/srv/set_parameters.hpp"
 | 
				
			||||||
#include "rcl_interfaces/srv/set_parameters_atomically.hpp"
 | 
					#include "rcl_interfaces/srv/set_parameters_atomically.hpp"
 | 
				
			||||||
#include "rosidl_generator_cpp/message_type_support.hpp"
 | 
					 | 
				
			||||||
#include "rosidl_generator_cpp/service_type_support.hpp"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const rosidl_message_type_support_t *
 | 
					const rosidl_message_type_support_t *
 | 
				
			||||||
rclcpp::type_support::get_intra_process_message_msg_type_support()
 | 
					rclcpp::type_support::get_intra_process_message_msg_type_support()
 | 
				
			||||||
| 
						 | 
					@ -119,5 +114,3 @@ rclcpp::type_support::get_set_parameters_atomically_srv_type_support()
 | 
				
			||||||
    rcl_interfaces::srv::SetParametersAtomically
 | 
					    rcl_interfaces::srv::SetParametersAtomically
 | 
				
			||||||
  >();
 | 
					  >();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif  // RCLCPP__TYPE_SUPPORT_DEF_HPP_
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
// Copyright 2015 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#if defined(WIN32)
 | 
					 | 
				
			||||||
#include "rclcpp/type_support_def.hpp"
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue