Fix order of parameters
This commit is contained in:
parent
858671a864
commit
bb8cad74ee
3 changed files with 19 additions and 17 deletions
|
@ -67,7 +67,8 @@ public:
|
||||||
|
|
||||||
virtual std::shared_ptr<void> create_response() = 0;
|
virtual std::shared_ptr<void> create_response() = 0;
|
||||||
virtual std::shared_ptr<void> create_request_header() = 0;
|
virtual std::shared_ptr<void> create_request_header() = 0;
|
||||||
virtual void handle_response(std::shared_ptr<void> &response, std::shared_ptr<void> &req_id) = 0;
|
virtual void handle_response(std::shared_ptr<void> &request_header,
|
||||||
|
std::shared_ptr<void> &response) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RCLCPP_DISABLE_COPY(ClientBase);
|
RCLCPP_DISABLE_COPY(ClientBase);
|
||||||
|
@ -106,11 +107,11 @@ public:
|
||||||
return std::shared_ptr<void>(new rmw_request_id_t);
|
return std::shared_ptr<void>(new rmw_request_id_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_response(std::shared_ptr<void> &response, std::shared_ptr<void> &req_id)
|
void handle_response(std::shared_ptr<void> &request_header, std::shared_ptr<void> &response)
|
||||||
{
|
{
|
||||||
auto typed_req_id = std::static_pointer_cast<rmw_request_id_t>(req_id);
|
auto typed_request_header = std::static_pointer_cast<rmw_request_id_t>(request_header);
|
||||||
auto typed_response = std::static_pointer_cast<typename ServiceT::Response>(response);
|
auto typed_response = std::static_pointer_cast<typename ServiceT::Response>(response);
|
||||||
int64_t sequence_number = typed_req_id->sequence_number;
|
int64_t sequence_number = typed_request_header->sequence_number;
|
||||||
auto tuple = this->pending_requests_[sequence_number];
|
auto tuple = this->pending_requests_[sequence_number];
|
||||||
auto call_promise = std::get<0>(tuple);
|
auto call_promise = std::get<0>(tuple);
|
||||||
auto callback = std::get<1>(tuple);
|
auto callback = std::get<1>(tuple);
|
||||||
|
|
|
@ -176,16 +176,16 @@ protected:
|
||||||
execute_service(
|
execute_service(
|
||||||
rclcpp::service::ServiceBase::SharedPtr &service)
|
rclcpp::service::ServiceBase::SharedPtr &service)
|
||||||
{
|
{
|
||||||
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();
|
||||||
|
std::shared_ptr<void> request = service->create_request();
|
||||||
bool taken = false;
|
bool taken = false;
|
||||||
rmw_take_request(service->service_handle_,
|
rmw_take_request(service->service_handle_,
|
||||||
request.get(),
|
|
||||||
request_header.get(),
|
request_header.get(),
|
||||||
|
request.get(),
|
||||||
&taken);
|
&taken);
|
||||||
if (taken)
|
if (taken)
|
||||||
{
|
{
|
||||||
service->handle_request(request, request_header);
|
service->handle_request(request_header, request);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -199,16 +199,16 @@ protected:
|
||||||
execute_client(
|
execute_client(
|
||||||
rclcpp::client::ClientBase::SharedPtr &client)
|
rclcpp::client::ClientBase::SharedPtr &client)
|
||||||
{
|
{
|
||||||
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();
|
||||||
|
std::shared_ptr<void> response = client->create_response();
|
||||||
bool taken = false;
|
bool taken = false;
|
||||||
taken = rmw_take_response(client->client_handle_,
|
rmw_take_response(client->client_handle_,
|
||||||
response.get(),
|
|
||||||
request_header.get(),
|
request_header.get(),
|
||||||
|
response.get(),
|
||||||
&taken);
|
&taken);
|
||||||
if (taken)
|
if (taken)
|
||||||
{
|
{
|
||||||
client->handle_response(response, request_header);
|
client->handle_response(request_header, response);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -66,7 +66,8 @@ public:
|
||||||
|
|
||||||
virtual std::shared_ptr<void> create_request() = 0;
|
virtual std::shared_ptr<void> create_request() = 0;
|
||||||
virtual std::shared_ptr<void> create_request_header() = 0;
|
virtual std::shared_ptr<void> create_request_header() = 0;
|
||||||
virtual void handle_request(std::shared_ptr<void> &request, std::shared_ptr<void> &req_id) = 0;
|
virtual void handle_request(std::shared_ptr<void> &request_header,
|
||||||
|
std::shared_ptr<void> &request) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RCLCPP_DISABLE_COPY(ServiceBase);
|
RCLCPP_DISABLE_COPY(ServiceBase);
|
||||||
|
@ -103,13 +104,13 @@ public:
|
||||||
return std::shared_ptr<void>(new rmw_request_id_t);
|
return std::shared_ptr<void>(new rmw_request_id_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_request(std::shared_ptr<void> &request, std::shared_ptr<void> &req_id)
|
void handle_request(std::shared_ptr<void> &request_header, std::shared_ptr<void> &request)
|
||||||
{
|
{
|
||||||
auto typed_request = std::static_pointer_cast<typename ServiceT::Request>(request);
|
auto typed_request = std::static_pointer_cast<typename ServiceT::Request>(request);
|
||||||
auto typed_req_id = std::static_pointer_cast<rmw_request_id_t>(req_id);
|
auto typed_request_header = std::static_pointer_cast<rmw_request_id_t>(request_header);
|
||||||
auto response = std::shared_ptr<typename ServiceT::Response>(new typename ServiceT::Response);
|
auto response = std::shared_ptr<typename ServiceT::Response>(new typename ServiceT::Response);
|
||||||
callback_(typed_request, response);
|
callback_(typed_request, response);
|
||||||
send_response(typed_req_id, response);
|
send_response(typed_request_header, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_response(std::shared_ptr<rmw_request_id_t> &req_id,
|
void send_response(std::shared_ptr<rmw_request_id_t> &req_id,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue