// generated from rosidl_typesupport_c/resource/idl__type_support.cpp.em
// with input from control_msgs:action/SingleJointPosition.idl
// generated code does not contain a copyright notice

#include "cstddef"
#include "rosidl_runtime_c/message_type_support_struct.h"
#include "control_msgs/action/detail/single_joint_position__struct.h"
#include "control_msgs/action/detail/single_joint_position__type_support.h"
#include "control_msgs/action/detail/single_joint_position__functions.h"
#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_c/visibility_control.h"
#include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_Goal_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_Goal_type_support_ids_t;

static const _SingleJointPosition_Goal_type_support_ids_t _SingleJointPosition_Goal_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_Goal_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_Goal_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_Goal_type_support_symbol_names_t _SingleJointPosition_Goal_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_Goal)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_Goal)),
  }
};

typedef struct _SingleJointPosition_Goal_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_Goal_type_support_data_t;

static _SingleJointPosition_Goal_type_support_data_t _SingleJointPosition_Goal_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_Goal_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_Goal_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_Goal_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_Goal_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_Goal_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_Goal_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_Goal__get_type_hash,
  &control_msgs__action__SingleJointPosition_Goal__get_type_description,
  &control_msgs__action__SingleJointPosition_Goal__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_Goal)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_Goal_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_Result_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_Result_type_support_ids_t;

static const _SingleJointPosition_Result_type_support_ids_t _SingleJointPosition_Result_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_Result_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_Result_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_Result_type_support_symbol_names_t _SingleJointPosition_Result_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_Result)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_Result)),
  }
};

typedef struct _SingleJointPosition_Result_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_Result_type_support_data_t;

static _SingleJointPosition_Result_type_support_data_t _SingleJointPosition_Result_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_Result_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_Result_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_Result_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_Result_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_Result_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_Result_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_Result__get_type_hash,
  &control_msgs__action__SingleJointPosition_Result__get_type_description,
  &control_msgs__action__SingleJointPosition_Result__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_Result)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_Result_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_Feedback_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_Feedback_type_support_ids_t;

static const _SingleJointPosition_Feedback_type_support_ids_t _SingleJointPosition_Feedback_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_Feedback_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_Feedback_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_Feedback_type_support_symbol_names_t _SingleJointPosition_Feedback_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_Feedback)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_Feedback)),
  }
};

typedef struct _SingleJointPosition_Feedback_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_Feedback_type_support_data_t;

static _SingleJointPosition_Feedback_type_support_data_t _SingleJointPosition_Feedback_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_Feedback_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_Feedback_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_Feedback_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_Feedback_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_Feedback_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_Feedback_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_Feedback__get_type_hash,
  &control_msgs__action__SingleJointPosition_Feedback__get_type_description,
  &control_msgs__action__SingleJointPosition_Feedback__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_Feedback)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_Feedback_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_SendGoal_Request_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_SendGoal_Request_type_support_ids_t;

static const _SingleJointPosition_SendGoal_Request_type_support_ids_t _SingleJointPosition_SendGoal_Request_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_SendGoal_Request_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_SendGoal_Request_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_SendGoal_Request_type_support_symbol_names_t _SingleJointPosition_SendGoal_Request_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_SendGoal_Request)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_SendGoal_Request)),
  }
};

typedef struct _SingleJointPosition_SendGoal_Request_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_SendGoal_Request_type_support_data_t;

static _SingleJointPosition_SendGoal_Request_type_support_data_t _SingleJointPosition_SendGoal_Request_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_SendGoal_Request_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_SendGoal_Request_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_SendGoal_Request_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_SendGoal_Request_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_SendGoal_Request_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_SendGoal_Request_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_SendGoal_Request__get_type_hash,
  &control_msgs__action__SingleJointPosition_SendGoal_Request__get_type_description,
  &control_msgs__action__SingleJointPosition_SendGoal_Request__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_SendGoal_Request)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_SendGoal_Request_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_SendGoal_Response_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_SendGoal_Response_type_support_ids_t;

static const _SingleJointPosition_SendGoal_Response_type_support_ids_t _SingleJointPosition_SendGoal_Response_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_SendGoal_Response_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_SendGoal_Response_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_SendGoal_Response_type_support_symbol_names_t _SingleJointPosition_SendGoal_Response_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_SendGoal_Response)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_SendGoal_Response)),
  }
};

typedef struct _SingleJointPosition_SendGoal_Response_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_SendGoal_Response_type_support_data_t;

static _SingleJointPosition_SendGoal_Response_type_support_data_t _SingleJointPosition_SendGoal_Response_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_SendGoal_Response_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_SendGoal_Response_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_SendGoal_Response_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_SendGoal_Response_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_SendGoal_Response_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_SendGoal_Response_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_SendGoal_Response__get_type_hash,
  &control_msgs__action__SingleJointPosition_SendGoal_Response__get_type_description,
  &control_msgs__action__SingleJointPosition_SendGoal_Response__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_SendGoal_Response)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_SendGoal_Response_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_SendGoal_Event_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_SendGoal_Event_type_support_ids_t;

static const _SingleJointPosition_SendGoal_Event_type_support_ids_t _SingleJointPosition_SendGoal_Event_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_SendGoal_Event_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_SendGoal_Event_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_SendGoal_Event_type_support_symbol_names_t _SingleJointPosition_SendGoal_Event_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_SendGoal_Event)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_SendGoal_Event)),
  }
};

typedef struct _SingleJointPosition_SendGoal_Event_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_SendGoal_Event_type_support_data_t;

static _SingleJointPosition_SendGoal_Event_type_support_data_t _SingleJointPosition_SendGoal_Event_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_SendGoal_Event_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_SendGoal_Event_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_SendGoal_Event_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_SendGoal_Event_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_SendGoal_Event_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_SendGoal_Event_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_SendGoal_Event__get_type_hash,
  &control_msgs__action__SingleJointPosition_SendGoal_Event__get_type_description,
  &control_msgs__action__SingleJointPosition_SendGoal_Event__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_SendGoal_Event)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_SendGoal_Event_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
#include "rosidl_runtime_c/service_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
#include "rosidl_typesupport_c/service_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"
#include "service_msgs/msg/service_event_info.h"
#include "builtin_interfaces/msg/time.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{
typedef struct _SingleJointPosition_SendGoal_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_SendGoal_type_support_ids_t;

static const _SingleJointPosition_SendGoal_type_support_ids_t _SingleJointPosition_SendGoal_service_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_SendGoal_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_SendGoal_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_SendGoal_type_support_symbol_names_t _SingleJointPosition_SendGoal_service_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_SendGoal)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_SendGoal)),
  }
};

typedef struct _SingleJointPosition_SendGoal_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_SendGoal_type_support_data_t;

static _SingleJointPosition_SendGoal_type_support_data_t _SingleJointPosition_SendGoal_service_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_SendGoal_service_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_SendGoal_service_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_SendGoal_service_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_SendGoal_service_typesupport_data.data[0],
};

static const rosidl_service_type_support_t SingleJointPosition_SendGoal_service_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_SendGoal_service_typesupport_map),
  rosidl_typesupport_c__get_service_typesupport_handle_function,
  &SingleJointPosition_SendGoal_Request_message_type_support_handle,
  &SingleJointPosition_SendGoal_Response_message_type_support_handle,
  &SingleJointPosition_SendGoal_Event_message_type_support_handle,
  ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_CREATE_EVENT_MESSAGE_SYMBOL_NAME(
    rosidl_typesupport_c,
    control_msgs,
    action,
    SingleJointPosition_SendGoal
  ),
  ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_DESTROY_EVENT_MESSAGE_SYMBOL_NAME(
    rosidl_typesupport_c,
    control_msgs,
    action,
    SingleJointPosition_SendGoal
  ),
  &control_msgs__action__SingleJointPosition_SendGoal__get_type_hash,
  &control_msgs__action__SingleJointPosition_SendGoal__get_type_description,
  &control_msgs__action__SingleJointPosition_SendGoal__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_service_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_SendGoal)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_SendGoal_service_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_GetResult_Request_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_GetResult_Request_type_support_ids_t;

static const _SingleJointPosition_GetResult_Request_type_support_ids_t _SingleJointPosition_GetResult_Request_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_GetResult_Request_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_GetResult_Request_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_GetResult_Request_type_support_symbol_names_t _SingleJointPosition_GetResult_Request_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_GetResult_Request)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_GetResult_Request)),
  }
};

typedef struct _SingleJointPosition_GetResult_Request_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_GetResult_Request_type_support_data_t;

static _SingleJointPosition_GetResult_Request_type_support_data_t _SingleJointPosition_GetResult_Request_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_GetResult_Request_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_GetResult_Request_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_GetResult_Request_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_GetResult_Request_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_GetResult_Request_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_GetResult_Request_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_GetResult_Request__get_type_hash,
  &control_msgs__action__SingleJointPosition_GetResult_Request__get_type_description,
  &control_msgs__action__SingleJointPosition_GetResult_Request__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_GetResult_Request)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_GetResult_Request_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_GetResult_Response_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_GetResult_Response_type_support_ids_t;

static const _SingleJointPosition_GetResult_Response_type_support_ids_t _SingleJointPosition_GetResult_Response_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_GetResult_Response_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_GetResult_Response_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_GetResult_Response_type_support_symbol_names_t _SingleJointPosition_GetResult_Response_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_GetResult_Response)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_GetResult_Response)),
  }
};

typedef struct _SingleJointPosition_GetResult_Response_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_GetResult_Response_type_support_data_t;

static _SingleJointPosition_GetResult_Response_type_support_data_t _SingleJointPosition_GetResult_Response_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_GetResult_Response_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_GetResult_Response_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_GetResult_Response_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_GetResult_Response_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_GetResult_Response_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_GetResult_Response_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_GetResult_Response__get_type_hash,
  &control_msgs__action__SingleJointPosition_GetResult_Response__get_type_description,
  &control_msgs__action__SingleJointPosition_GetResult_Response__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_GetResult_Response)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_GetResult_Response_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_GetResult_Event_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_GetResult_Event_type_support_ids_t;

static const _SingleJointPosition_GetResult_Event_type_support_ids_t _SingleJointPosition_GetResult_Event_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_GetResult_Event_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_GetResult_Event_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_GetResult_Event_type_support_symbol_names_t _SingleJointPosition_GetResult_Event_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_GetResult_Event)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_GetResult_Event)),
  }
};

typedef struct _SingleJointPosition_GetResult_Event_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_GetResult_Event_type_support_data_t;

static _SingleJointPosition_GetResult_Event_type_support_data_t _SingleJointPosition_GetResult_Event_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_GetResult_Event_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_GetResult_Event_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_GetResult_Event_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_GetResult_Event_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_GetResult_Event_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_GetResult_Event_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_GetResult_Event__get_type_hash,
  &control_msgs__action__SingleJointPosition_GetResult_Event__get_type_description,
  &control_msgs__action__SingleJointPosition_GetResult_Event__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_GetResult_Event)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_GetResult_Event_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/service_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/service_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"
// already included above
// #include "service_msgs/msg/service_event_info.h"
// already included above
// #include "builtin_interfaces/msg/time.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{
typedef struct _SingleJointPosition_GetResult_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_GetResult_type_support_ids_t;

static const _SingleJointPosition_GetResult_type_support_ids_t _SingleJointPosition_GetResult_service_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_GetResult_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_GetResult_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_GetResult_type_support_symbol_names_t _SingleJointPosition_GetResult_service_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_GetResult)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_GetResult)),
  }
};

typedef struct _SingleJointPosition_GetResult_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_GetResult_type_support_data_t;

static _SingleJointPosition_GetResult_type_support_data_t _SingleJointPosition_GetResult_service_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_GetResult_service_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_GetResult_service_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_GetResult_service_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_GetResult_service_typesupport_data.data[0],
};

static const rosidl_service_type_support_t SingleJointPosition_GetResult_service_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_GetResult_service_typesupport_map),
  rosidl_typesupport_c__get_service_typesupport_handle_function,
  &SingleJointPosition_GetResult_Request_message_type_support_handle,
  &SingleJointPosition_GetResult_Response_message_type_support_handle,
  &SingleJointPosition_GetResult_Event_message_type_support_handle,
  ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_CREATE_EVENT_MESSAGE_SYMBOL_NAME(
    rosidl_typesupport_c,
    control_msgs,
    action,
    SingleJointPosition_GetResult
  ),
  ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_DESTROY_EVENT_MESSAGE_SYMBOL_NAME(
    rosidl_typesupport_c,
    control_msgs,
    action,
    SingleJointPosition_GetResult
  ),
  &control_msgs__action__SingleJointPosition_GetResult__get_type_hash,
  &control_msgs__action__SingleJointPosition_GetResult__get_type_description,
  &control_msgs__action__SingleJointPosition_GetResult__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_service_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_GetResult)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_GetResult_service_type_support_handle;
}

#ifdef __cplusplus
}
#endif

// already included above
// #include "cstddef"
// already included above
// #include "rosidl_runtime_c/message_type_support_struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__struct.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__functions.h"
// already included above
// #include "rosidl_typesupport_c/identifier.h"
// already included above
// #include "rosidl_typesupport_c/message_type_support_dispatch.h"
// already included above
// #include "rosidl_typesupport_c/type_support_map.h"
// already included above
// #include "rosidl_typesupport_c/visibility_control.h"
// already included above
// #include "rosidl_typesupport_interface/macros.h"

namespace control_msgs
{

namespace action
{

namespace rosidl_typesupport_c
{

typedef struct _SingleJointPosition_FeedbackMessage_type_support_ids_t
{
  const char * typesupport_identifier[2];
} _SingleJointPosition_FeedbackMessage_type_support_ids_t;

static const _SingleJointPosition_FeedbackMessage_type_support_ids_t _SingleJointPosition_FeedbackMessage_message_typesupport_ids = {
  {
    "rosidl_typesupport_fastrtps_c",  // ::rosidl_typesupport_fastrtps_c::typesupport_identifier,
    "rosidl_typesupport_introspection_c",  // ::rosidl_typesupport_introspection_c::typesupport_identifier,
  }
};

typedef struct _SingleJointPosition_FeedbackMessage_type_support_symbol_names_t
{
  const char * symbol_name[2];
} _SingleJointPosition_FeedbackMessage_type_support_symbol_names_t;

#define STRINGIFY_(s) #s
#define STRINGIFY(s) STRINGIFY_(s)

static const _SingleJointPosition_FeedbackMessage_type_support_symbol_names_t _SingleJointPosition_FeedbackMessage_message_typesupport_symbol_names = {
  {
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_fastrtps_c, control_msgs, action, SingleJointPosition_FeedbackMessage)),
    STRINGIFY(ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_introspection_c, control_msgs, action, SingleJointPosition_FeedbackMessage)),
  }
};

typedef struct _SingleJointPosition_FeedbackMessage_type_support_data_t
{
  void * data[2];
} _SingleJointPosition_FeedbackMessage_type_support_data_t;

static _SingleJointPosition_FeedbackMessage_type_support_data_t _SingleJointPosition_FeedbackMessage_message_typesupport_data = {
  {
    0,  // will store the shared library later
    0,  // will store the shared library later
  }
};

static const type_support_map_t _SingleJointPosition_FeedbackMessage_message_typesupport_map = {
  2,
  "control_msgs",
  &_SingleJointPosition_FeedbackMessage_message_typesupport_ids.typesupport_identifier[0],
  &_SingleJointPosition_FeedbackMessage_message_typesupport_symbol_names.symbol_name[0],
  &_SingleJointPosition_FeedbackMessage_message_typesupport_data.data[0],
};

static const rosidl_message_type_support_t SingleJointPosition_FeedbackMessage_message_type_support_handle = {
  rosidl_typesupport_c__typesupport_identifier,
  reinterpret_cast<const type_support_map_t *>(&_SingleJointPosition_FeedbackMessage_message_typesupport_map),
  rosidl_typesupport_c__get_message_typesupport_handle_function,
  &control_msgs__action__SingleJointPosition_FeedbackMessage__get_type_hash,
  &control_msgs__action__SingleJointPosition_FeedbackMessage__get_type_description,
  &control_msgs__action__SingleJointPosition_FeedbackMessage__get_type_description_sources,
};

}  // namespace rosidl_typesupport_c

}  // namespace action

}  // namespace control_msgs

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_message_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(rosidl_typesupport_c, control_msgs, action, SingleJointPosition_FeedbackMessage)() {
  return &::control_msgs::action::rosidl_typesupport_c::SingleJointPosition_FeedbackMessage_message_type_support_handle;
}

#ifdef __cplusplus
}
#endif

#include "action_msgs/msg/goal_status_array.h"
#include "action_msgs/srv/cancel_goal.h"
#include "control_msgs/action/single_joint_position.h"
// already included above
// #include "control_msgs/action/detail/single_joint_position__type_support.h"

static rosidl_action_type_support_t _control_msgs__action__SingleJointPosition__typesupport_c = {
  NULL, NULL, NULL, NULL, NULL,
  &control_msgs__action__SingleJointPosition__get_type_hash,
  &control_msgs__action__SingleJointPosition__get_type_description,
  &control_msgs__action__SingleJointPosition__get_type_description_sources,
};

#ifdef __cplusplus
extern "C"
{
#endif

const rosidl_action_type_support_t *
ROSIDL_TYPESUPPORT_INTERFACE__ACTION_SYMBOL_NAME(
  rosidl_typesupport_c, control_msgs, action, SingleJointPosition)()
{
  // Thread-safe by always writing the same values to the static struct
  _control_msgs__action__SingleJointPosition__typesupport_c.goal_service_type_support =
    ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(
    rosidl_typesupport_c, control_msgs, action, SingleJointPosition_SendGoal)();
  _control_msgs__action__SingleJointPosition__typesupport_c.result_service_type_support =
    ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(
    rosidl_typesupport_c, control_msgs, action, SingleJointPosition_GetResult)();
  _control_msgs__action__SingleJointPosition__typesupport_c.cancel_service_type_support =
    ROSIDL_TYPESUPPORT_INTERFACE__SERVICE_SYMBOL_NAME(
    rosidl_typesupport_c, action_msgs, srv, CancelGoal)();
  _control_msgs__action__SingleJointPosition__typesupport_c.feedback_message_type_support =
    ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(
    rosidl_typesupport_c, control_msgs, action, SingleJointPosition_FeedbackMessage)();
  _control_msgs__action__SingleJointPosition__typesupport_c.status_message_type_support =
    ROSIDL_TYPESUPPORT_INTERFACE__MESSAGE_SYMBOL_NAME(
    rosidl_typesupport_c, action_msgs, msg, GoalStatusArray)();

  return &_control_msgs__action__SingleJointPosition__typesupport_c;
}

#ifdef __cplusplus
}
#endif
