Added support for RTI Connext services. Update rmw_take* signatures
This commit is contained in:
parent
25c8c567b4
commit
9daec001e2
2 changed files with 20 additions and 22 deletions
|
@ -151,8 +151,8 @@ protected:
|
||||||
rclcpp::subscription::SubscriptionBase::SharedPtr &subscription)
|
rclcpp::subscription::SubscriptionBase::SharedPtr &subscription)
|
||||||
{
|
{
|
||||||
std::shared_ptr<void> message = subscription->create_message();
|
std::shared_ptr<void> message = subscription->create_message();
|
||||||
auto taken = rmw_take(subscription->subscription_handle_, message.get());
|
bool taken = false;
|
||||||
// TODO(wjwwood): taken is no longer a boolean, check against return types.
|
rmw_take(subscription->subscription_handle_, message.get(), &taken);
|
||||||
if (taken)
|
if (taken)
|
||||||
{
|
{
|
||||||
subscription->handle_message(message);
|
subscription->handle_message(message);
|
||||||
|
@ -178,9 +178,11 @@ protected:
|
||||||
{
|
{
|
||||||
std::shared_ptr<void> request = service->create_request();
|
std::shared_ptr<void> request = service->create_request();
|
||||||
std::shared_ptr<void> request_header = service->create_request_header();
|
std::shared_ptr<void> request_header = service->create_request_header();
|
||||||
bool taken = rmw_take_request(service->service_handle_,
|
bool taken = false;
|
||||||
request.get(),
|
rmw_take_request(service->service_handle_,
|
||||||
request_header.get());
|
request.get(),
|
||||||
|
request_header.get(),
|
||||||
|
&taken);
|
||||||
if (taken)
|
if (taken)
|
||||||
{
|
{
|
||||||
service->handle_request(request, request_header);
|
service->handle_request(request, request_header);
|
||||||
|
@ -199,9 +201,11 @@ protected:
|
||||||
{
|
{
|
||||||
std::shared_ptr<void> response = client->create_response();
|
std::shared_ptr<void> response = client->create_response();
|
||||||
std::shared_ptr<void> request_header = client->create_request_header();
|
std::shared_ptr<void> request_header = client->create_request_header();
|
||||||
bool taken = rmw_take_response(client->client_handle_,
|
bool taken = false;
|
||||||
response.get(),
|
taken = rmw_take_response(client->client_handle_,
|
||||||
request_header.get());
|
response.get(),
|
||||||
|
request_header.get(),
|
||||||
|
&taken);
|
||||||
if (taken)
|
if (taken)
|
||||||
{
|
{
|
||||||
client->handle_response(response, request_header);
|
client->handle_response(response, request_header);
|
||||||
|
|
|
@ -65,10 +65,8 @@ Node::create_publisher(std::string topic_name, size_t queue_size)
|
||||||
{
|
{
|
||||||
using rosidl_generator_cpp::get_type_support_handle;
|
using rosidl_generator_cpp::get_type_support_handle;
|
||||||
auto type_support_handle = get_type_support_handle<MessageT>();
|
auto type_support_handle = get_type_support_handle<MessageT>();
|
||||||
auto publisher_handle = rmw_create_publisher(node_handle_,
|
rmw_publisher_t * publisher_handle = rmw_create_publisher(
|
||||||
type_support_handle,
|
node_handle_, type_support_handle, topic_name.c_str(), queue_size);
|
||||||
topic_name.c_str(),
|
|
||||||
queue_size);
|
|
||||||
|
|
||||||
return publisher::Publisher::make_shared(publisher_handle);
|
return publisher::Publisher::make_shared(publisher_handle);
|
||||||
}
|
}
|
||||||
|
@ -98,10 +96,8 @@ Node::create_subscription(
|
||||||
{
|
{
|
||||||
using rosidl_generator_cpp::get_type_support_handle;
|
using rosidl_generator_cpp::get_type_support_handle;
|
||||||
auto type_support_handle = get_type_support_handle<MessageT>();
|
auto type_support_handle = get_type_support_handle<MessageT>();
|
||||||
auto subscriber_handle = rmw_create_subscription(node_handle_,
|
rmw_subscription_t * subscriber_handle = rmw_create_subscription(
|
||||||
type_support_handle,
|
node_handle_, type_support_handle, topic_name.c_str(), queue_size);
|
||||||
topic_name.c_str(),
|
|
||||||
queue_size);
|
|
||||||
|
|
||||||
using namespace rclcpp::subscription;
|
using namespace rclcpp::subscription;
|
||||||
|
|
||||||
|
@ -171,9 +167,8 @@ Node::create_client(
|
||||||
auto service_type_support_handle =
|
auto service_type_support_handle =
|
||||||
get_service_type_support_handle<ServiceT>();
|
get_service_type_support_handle<ServiceT>();
|
||||||
|
|
||||||
auto client_handle = rmw_create_client(this->node_handle_,
|
rmw_client_t * client_handle = rmw_create_client(
|
||||||
service_type_support_handle,
|
this->node_handle_, service_type_support_handle, service_name.c_str());
|
||||||
service_name.c_str());
|
|
||||||
|
|
||||||
using namespace rclcpp::client;
|
using namespace rclcpp::client;
|
||||||
|
|
||||||
|
@ -211,9 +206,8 @@ Node::create_service(
|
||||||
auto service_type_support_handle =
|
auto service_type_support_handle =
|
||||||
get_service_type_support_handle<ServiceT>();
|
get_service_type_support_handle<ServiceT>();
|
||||||
|
|
||||||
auto service_handle = rmw_create_service(this->node_handle_,
|
rmw_service_t * service_handle = rmw_create_service(
|
||||||
service_type_support_handle,
|
this->node_handle_, service_type_support_handle, service_name.c_str());
|
||||||
service_name.c_str());
|
|
||||||
|
|
||||||
using namespace rclcpp::service;
|
using namespace rclcpp::service;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue