fix extern "C" use upsetting gcc (and accepted by clang)
This commit is contained in:
parent
01ef31359a
commit
9c71a0bed2
1 changed files with 1328 additions and 1331 deletions
|
@ -327,16 +327,14 @@ static bool desermsg(eprosima::fastcdr::Cdr& deser, void *ros_message, std::func
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#pragma GCC visibility push(default)
|
#pragma GCC visibility push(default)
|
||||||
|
|
||||||
const char *rmw_get_implementation_identifier()
|
extern "C" const char *rmw_get_implementation_identifier()
|
||||||
{
|
{
|
||||||
return adlink_cyclonedds_identifier;
|
return adlink_cyclonedds_identifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_init()
|
extern "C" rmw_ret_t rmw_init()
|
||||||
{
|
{
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
@ -347,7 +345,7 @@ extern "C"
|
||||||
/////////// ///////////
|
/////////// ///////////
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
rmw_node_t *rmw_create_node(const char *name, const char *namespace_, size_t domain_id, const rmw_node_security_options_t *security_options)
|
extern "C" rmw_node_t *rmw_create_node(const char *name, const char *namespace_, size_t domain_id, const rmw_node_security_options_t *security_options)
|
||||||
{
|
{
|
||||||
RET_NULL_X(name, return nullptr);
|
RET_NULL_X(name, return nullptr);
|
||||||
RET_NULL_X(namespace_, return nullptr);
|
RET_NULL_X(namespace_, return nullptr);
|
||||||
|
@ -404,7 +402,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_node(rmw_node_t *node)
|
extern "C" rmw_ret_t rmw_destroy_node(rmw_node_t *node)
|
||||||
{
|
{
|
||||||
rmw_ret_t result_ret = RMW_RET_OK;
|
rmw_ret_t result_ret = RMW_RET_OK;
|
||||||
RET_WRONG_IMPLID(node);
|
RET_WRONG_IMPLID(node);
|
||||||
|
@ -425,7 +423,7 @@ extern "C"
|
||||||
return result_ret;
|
return result_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
const rmw_guard_condition_t *rmw_node_get_graph_guard_condition(const rmw_node_t *node)
|
extern "C" const rmw_guard_condition_t *rmw_node_get_graph_guard_condition(const rmw_node_t *node)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID_X(node, return nullptr);
|
RET_WRONG_IMPLID_X(node, return nullptr);
|
||||||
auto node_impl = static_cast<CddsNode *>(node->data);
|
auto node_impl = static_cast<CddsNode *>(node->data);
|
||||||
|
@ -455,7 +453,7 @@ extern "C"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_publish(const rmw_publisher_t *publisher, const void *ros_message)
|
extern "C" rmw_ret_t rmw_publish(const rmw_publisher_t *publisher, const void *ros_message)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(publisher);
|
RET_WRONG_IMPLID(publisher);
|
||||||
RET_NULL(ros_message);
|
RET_NULL(ros_message);
|
||||||
|
@ -590,7 +588,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_publisher_t *rmw_create_publisher(const rmw_node_t *node, const rosidl_message_type_support_t *type_supports, const char *topic_name, const rmw_qos_profile_t *qos_policies)
|
extern "C" rmw_publisher_t *rmw_create_publisher(const rmw_node_t *node, const rosidl_message_type_support_t *type_supports, const char *topic_name, const rmw_qos_profile_t *qos_policies)
|
||||||
{
|
{
|
||||||
CddsPublisher *pub;
|
CddsPublisher *pub;
|
||||||
rmw_publisher_t *rmw_publisher;
|
rmw_publisher_t *rmw_publisher;
|
||||||
|
@ -618,7 +616,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_get_gid_for_publisher(const rmw_publisher_t *publisher, rmw_gid_t *gid)
|
extern "C" rmw_ret_t rmw_get_gid_for_publisher(const rmw_publisher_t *publisher, rmw_gid_t *gid)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(publisher);
|
RET_WRONG_IMPLID(publisher);
|
||||||
RET_NULL(gid);
|
RET_NULL(gid);
|
||||||
|
@ -631,7 +629,7 @@ extern "C"
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_compare_gids_equal(const rmw_gid_t *gid1, const rmw_gid_t *gid2, bool *result)
|
extern "C" rmw_ret_t rmw_compare_gids_equal(const rmw_gid_t *gid1, const rmw_gid_t *gid2, bool *result)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(gid1);
|
RET_WRONG_IMPLID(gid1);
|
||||||
RET_WRONG_IMPLID(gid2);
|
RET_WRONG_IMPLID(gid2);
|
||||||
|
@ -642,7 +640,7 @@ extern "C"
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_publisher(rmw_node_t *node, rmw_publisher_t *publisher)
|
extern "C" rmw_ret_t rmw_destroy_publisher(rmw_node_t *node, rmw_publisher_t *publisher)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(node);
|
RET_WRONG_IMPLID(node);
|
||||||
RET_WRONG_IMPLID(publisher);
|
RET_WRONG_IMPLID(publisher);
|
||||||
|
@ -728,7 +726,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_subscription_t *rmw_create_subscription(const rmw_node_t *node, const rosidl_message_type_support_t *type_supports, const char *topic_name, const rmw_qos_profile_t *qos_policies, bool ignore_local_publications)
|
extern "C" rmw_subscription_t *rmw_create_subscription(const rmw_node_t *node, const rosidl_message_type_support_t *type_supports, const char *topic_name, const rmw_qos_profile_t *qos_policies, bool ignore_local_publications)
|
||||||
{
|
{
|
||||||
CddsSubscription *sub;
|
CddsSubscription *sub;
|
||||||
rmw_subscription_t *rmw_subscription;
|
rmw_subscription_t *rmw_subscription;
|
||||||
|
@ -754,7 +752,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_subscription(rmw_node_t *node, rmw_subscription_t *subscription)
|
extern "C" rmw_ret_t rmw_destroy_subscription(rmw_node_t *node, rmw_subscription_t *subscription)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(node);
|
RET_WRONG_IMPLID(node);
|
||||||
RET_WRONG_IMPLID(subscription);
|
RET_WRONG_IMPLID(subscription);
|
||||||
|
@ -806,12 +804,12 @@ extern "C"
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_take(const rmw_subscription_t *subscription, void *ros_message, bool *taken)
|
extern "C" rmw_ret_t rmw_take(const rmw_subscription_t *subscription, void *ros_message, bool *taken)
|
||||||
{
|
{
|
||||||
return rmw_take_int(subscription, ros_message, taken, nullptr);
|
return rmw_take_int(subscription, ros_message, taken, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_take_with_info(const rmw_subscription_t *subscription, void *ros_message, bool *taken, rmw_message_info_t *message_info)
|
extern "C" rmw_ret_t rmw_take_with_info(const rmw_subscription_t *subscription, void *ros_message, bool *taken, rmw_message_info_t *message_info)
|
||||||
{
|
{
|
||||||
return rmw_take_int(subscription, ros_message, taken, message_info);
|
return rmw_take_int(subscription, ros_message, taken, message_info);
|
||||||
}
|
}
|
||||||
|
@ -899,7 +897,7 @@ extern "C"
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_guard_condition_t *rmw_create_guard_condition()
|
extern "C" rmw_guard_condition_t *rmw_create_guard_condition()
|
||||||
{
|
{
|
||||||
rmw_guard_condition_t *guard_condition_handle = new rmw_guard_condition_t;
|
rmw_guard_condition_t *guard_condition_handle = new rmw_guard_condition_t;
|
||||||
guard_condition_handle->implementation_identifier = adlink_cyclonedds_identifier;
|
guard_condition_handle->implementation_identifier = adlink_cyclonedds_identifier;
|
||||||
|
@ -907,7 +905,7 @@ extern "C"
|
||||||
return guard_condition_handle;
|
return guard_condition_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_guard_condition(rmw_guard_condition_t *guard_condition)
|
extern "C" rmw_ret_t rmw_destroy_guard_condition(rmw_guard_condition_t *guard_condition)
|
||||||
{
|
{
|
||||||
RET_NULL(guard_condition);
|
RET_NULL(guard_condition);
|
||||||
delete static_cast<CddsGuardCondition *>(guard_condition->data);
|
delete static_cast<CddsGuardCondition *>(guard_condition->data);
|
||||||
|
@ -915,14 +913,14 @@ extern "C"
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_trigger_guard_condition(const rmw_guard_condition_t *guard_condition_handle)
|
extern "C" rmw_ret_t rmw_trigger_guard_condition(const rmw_guard_condition_t *guard_condition_handle)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(guard_condition_handle);
|
RET_WRONG_IMPLID(guard_condition_handle);
|
||||||
condition_set_trigger(static_cast<CddsGuardCondition *>(guard_condition_handle->data), 1);
|
condition_set_trigger(static_cast<CddsGuardCondition *>(guard_condition_handle->data), 1);
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_wait_set_t *rmw_create_wait_set(size_t max_conditions)
|
extern "C" rmw_wait_set_t *rmw_create_wait_set(size_t max_conditions)
|
||||||
{
|
{
|
||||||
(void)max_conditions;
|
(void)max_conditions;
|
||||||
rmw_wait_set_t * wait_set = rmw_wait_set_allocate();
|
rmw_wait_set_t * wait_set = rmw_wait_set_allocate();
|
||||||
|
@ -950,7 +948,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_wait_set(rmw_wait_set_t * wait_set)
|
extern "C" rmw_ret_t rmw_destroy_wait_set(rmw_wait_set_t * wait_set)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(wait_set);
|
RET_WRONG_IMPLID(wait_set);
|
||||||
auto result = RMW_RET_OK;
|
auto result = RMW_RET_OK;
|
||||||
|
@ -973,7 +971,7 @@ extern "C"
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_wait(rmw_subscriptions_t *subs, rmw_guard_conditions_t *gcs, rmw_services_t *srvs, rmw_clients_t *cls, rmw_wait_set_t *wait_set, const rmw_time_t *wait_timeout)
|
extern "C" rmw_ret_t rmw_wait(rmw_subscriptions_t *subs, rmw_guard_conditions_t *gcs, rmw_services_t *srvs, rmw_clients_t *cls, rmw_wait_set_t *wait_set, const rmw_time_t *wait_timeout)
|
||||||
{
|
{
|
||||||
RET_NULL(wait_set);
|
RET_NULL(wait_set);
|
||||||
CddsWaitset *ws = static_cast<CddsWaitset *>(wait_set->data);
|
CddsWaitset *ws = static_cast<CddsWaitset *>(wait_set->data);
|
||||||
|
@ -1068,14 +1066,14 @@ extern "C"
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_take_response(const rmw_client_t *client, rmw_request_id_t *request_header, void *ros_response, bool *taken)
|
extern "C" rmw_ret_t rmw_take_response(const rmw_client_t *client, rmw_request_id_t *request_header, void *ros_response, bool *taken)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(client);
|
RET_WRONG_IMPLID(client);
|
||||||
auto info = static_cast<CddsClient *>(client->data);
|
auto info = static_cast<CddsClient *>(client->data);
|
||||||
return rmw_take_response_request(&info->client, request_header, ros_response, taken, info->client.pub->pubiid);
|
return rmw_take_response_request(&info->client, request_header, ros_response, taken, info->client.pub->pubiid);
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_take_request(const rmw_service_t *service, rmw_request_id_t *request_header, void *ros_request, bool *taken)
|
extern "C" rmw_ret_t rmw_take_request(const rmw_service_t *service, rmw_request_id_t *request_header, void *ros_request, bool *taken)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(service);
|
RET_WRONG_IMPLID(service);
|
||||||
auto info = static_cast<CddsService *>(service->data);
|
auto info = static_cast<CddsService *>(service->data);
|
||||||
|
@ -1094,7 +1092,7 @@ extern "C"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_send_response(const rmw_service_t *service, rmw_request_id_t *request_header, void *ros_response)
|
extern "C" rmw_ret_t rmw_send_response(const rmw_service_t *service, rmw_request_id_t *request_header, void *ros_response)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(service);
|
RET_WRONG_IMPLID(service);
|
||||||
RET_NULL(request_header);
|
RET_NULL(request_header);
|
||||||
|
@ -1106,7 +1104,7 @@ extern "C"
|
||||||
return rmw_send_response_request(&info->service, &header, ros_response);
|
return rmw_send_response_request(&info->service, &header, ros_response);
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_send_request(const rmw_client_t *client, const void *ros_request, int64_t *sequence_id)
|
extern "C" rmw_ret_t rmw_send_request(const rmw_client_t *client, const void *ros_request, int64_t *sequence_id)
|
||||||
{
|
{
|
||||||
static std::atomic_uint next_request_id;
|
static std::atomic_uint next_request_id;
|
||||||
RET_WRONG_IMPLID(client);
|
RET_WRONG_IMPLID(client);
|
||||||
|
@ -1236,7 +1234,7 @@ extern "C"
|
||||||
cs->sub->node->own_writers.erase(cs->pub->pubiid);
|
cs->sub->node->own_writers.erase(cs->pub->pubiid);
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_client_t *rmw_create_client(const rmw_node_t *node, const rosidl_service_type_support_t *type_supports, const char *service_name, const rmw_qos_profile_t *qos_policies)
|
extern "C" rmw_client_t *rmw_create_client(const rmw_node_t *node, const rosidl_service_type_support_t *type_supports, const char *service_name, const rmw_qos_profile_t *qos_policies)
|
||||||
{
|
{
|
||||||
CddsClient *info = new CddsClient();
|
CddsClient *info = new CddsClient();
|
||||||
if (rmw_init_cs(&info->client, node, type_supports, service_name, qos_policies, false) != RMW_RET_OK) {
|
if (rmw_init_cs(&info->client, node, type_supports, service_name, qos_policies, false) != RMW_RET_OK) {
|
||||||
|
@ -1258,7 +1256,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_client(rmw_node_t *node, rmw_client_t *client)
|
extern "C" rmw_ret_t rmw_destroy_client(rmw_node_t *node, rmw_client_t *client)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(node);
|
RET_WRONG_IMPLID(node);
|
||||||
RET_WRONG_IMPLID(client);
|
RET_WRONG_IMPLID(client);
|
||||||
|
@ -1269,7 +1267,7 @@ extern "C"
|
||||||
return RMW_RET_OK;
|
return RMW_RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_service_t *rmw_create_service(const rmw_node_t *node, const rosidl_service_type_support_t *type_supports, const char *service_name, const rmw_qos_profile_t *qos_policies)
|
extern "C" rmw_service_t *rmw_create_service(const rmw_node_t *node, const rosidl_service_type_support_t *type_supports, const char *service_name, const rmw_qos_profile_t *qos_policies)
|
||||||
{
|
{
|
||||||
CddsService *info = new CddsService();
|
CddsService *info = new CddsService();
|
||||||
if (rmw_init_cs(&info->service, node, type_supports, service_name, qos_policies, true) != RMW_RET_OK) {
|
if (rmw_init_cs(&info->service, node, type_supports, service_name, qos_policies, true) != RMW_RET_OK) {
|
||||||
|
@ -1291,7 +1289,7 @@ extern "C"
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_destroy_service(rmw_node_t *node, rmw_service_t *service)
|
extern "C" rmw_ret_t rmw_destroy_service(rmw_node_t *node, rmw_service_t *service)
|
||||||
{
|
{
|
||||||
RET_WRONG_IMPLID(node);
|
RET_WRONG_IMPLID(node);
|
||||||
RET_WRONG_IMPLID(service);
|
RET_WRONG_IMPLID(service);
|
||||||
|
@ -1308,7 +1306,7 @@ extern "C"
|
||||||
/////////// ///////////
|
/////////// ///////////
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
rmw_ret_t rmw_get_node_names(const rmw_node_t *node, rcutils_string_array_t *node_names)
|
extern "C" rmw_ret_t rmw_get_node_names(const rmw_node_t *node, rcutils_string_array_t *node_names)
|
||||||
{
|
{
|
||||||
#if 0 // NIY
|
#if 0 // NIY
|
||||||
RET_WRONG_IMPLID(node);
|
RET_WRONG_IMPLID(node);
|
||||||
|
@ -1347,7 +1345,7 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_get_topic_names_and_types(const rmw_node_t *node, rcutils_allocator_t *allocator, bool no_demangle, rmw_names_and_types_t *topic_names_and_types)
|
extern "C" rmw_ret_t rmw_get_topic_names_and_types(const rmw_node_t *node, rcutils_allocator_t *allocator, bool no_demangle, rmw_names_and_types_t *topic_names_and_types)
|
||||||
{
|
{
|
||||||
#if 0 // NIY
|
#if 0 // NIY
|
||||||
RET_NULL(allocator);
|
RET_NULL(allocator);
|
||||||
|
@ -1463,7 +1461,7 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_get_service_names_and_types(const rmw_node_t *node, rcutils_allocator_t *allocator, rmw_names_and_types_t *service_names_and_types)
|
extern "C" rmw_ret_t rmw_get_service_names_and_types(const rmw_node_t *node, rcutils_allocator_t *allocator, rmw_names_and_types_t *service_names_and_types)
|
||||||
{
|
{
|
||||||
#if 0 // NIY
|
#if 0 // NIY
|
||||||
if (!allocator) {
|
if (!allocator) {
|
||||||
|
@ -1590,7 +1588,7 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_service_server_is_available(const rmw_node_t * node, const rmw_client_t * client, bool * is_available)
|
extern "C" rmw_ret_t rmw_service_server_is_available(const rmw_node_t * node, const rmw_client_t * client, bool * is_available)
|
||||||
{
|
{
|
||||||
#if 0 // NIY
|
#if 0 // NIY
|
||||||
if (!node) {
|
if (!node) {
|
||||||
|
@ -1687,7 +1685,7 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_count_publishers(const rmw_node_t *node, const char *topic_name, size_t *count)
|
extern "C" rmw_ret_t rmw_count_publishers(const rmw_node_t *node, const char *topic_name, size_t *count)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
// safechecks
|
// safechecks
|
||||||
|
@ -1727,7 +1725,7 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
rmw_ret_t rmw_count_subscribers(const rmw_node_t *node, const char *topic_name, size_t *count)
|
extern "C" rmw_ret_t rmw_count_subscribers(const rmw_node_t *node, const char *topic_name, size_t *count)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
// safechecks
|
// safechecks
|
||||||
|
@ -1766,4 +1764,3 @@ extern "C"
|
||||||
return RMW_RET_TIMEOUT;
|
return RMW_RET_TIMEOUT;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
} // extern "C"
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue