33#include < grpcpp/support/status.h>
44
55#include < viam/sdk/common/pose.hpp>
6- #include < viam/sdk/common/private/proto_utils.hpp>
76#include < viam/sdk/common/proto_value.hpp>
87#include < viam/sdk/common/service_helper.hpp>
98#include < viam/sdk/common/utils.hpp>
1312
1413namespace viam {
1514namespace sdk {
16- namespace impl {
1715
18- using namespace service ::navigation::v1 ;
16+ namespace proto_convert_details {
1917
20- viam::service::navigation::v1::Waypoint to_proto (const Navigation::Waypoint& wp) {
21- viam::service::navigation::v1::Waypoint ret;
22- *ret.mutable_id () = wp.id ;
23- *ret.mutable_location () = v2::to_proto (wp.location );
24- return ret;
25- }
18+ template <>
19+ struct to_proto <Navigation::Path> {
20+ void operator ()(const Navigation::Path& self, service::navigation::v1::Path* proto) const {
21+ *(proto->mutable_destination_waypoint_id ()) = self.destination_waypoint_id ;
22+ *(proto->mutable_geopoints ()) = v2::to_proto (self.geopoints );
23+ }
24+ };
2625
27- viam::service::navigation::v1::Path to_proto (const Navigation::Path& p) {
28- viam::service::navigation::v1::Path ret;
29- *ret.mutable_destination_waypoint_id () = p.destination_waypoint_id ;
30- vecToRepeatedPtr (p.geopoints , *ret.mutable_geopoints ());
31- return ret;
32- }
26+ template <>
27+ struct to_proto <Navigation::Waypoint> {
28+ void operator ()(const Navigation::Waypoint& self,
29+ service::navigation::v1::Waypoint* proto) const {
30+ *(proto->mutable_id ()) = self.id ;
31+ *(proto->mutable_location ()) = v2::to_proto (self.location );
32+ }
33+ };
34+
35+ } // namespace proto_convert_details
36+
37+ namespace impl {
38+
39+ using namespace service ::navigation::v1;
3340
3441::grpc::Status NavigationServer::GetMode (::grpc::ServerContext*,
3542 const GetModeRequest* request,
@@ -65,8 +72,7 @@ ::grpc::Status NavigationServer::GetWaypoints(::grpc::ServerContext*,
6572 GetWaypointsResponse* response) noexcept {
6673 return make_service_helper<Navigation>(
6774 " NavigationServer::GetWaypoints" , this , request)([&](auto & helper, auto & nav) {
68- const auto waypoints = nav->get_waypoints (helper.getExtra ());
69- vecToRepeatedPtr (waypoints, *response->mutable_waypoints (), to_proto);
75+ *(response->mutable_waypoints ()) = v2::to_proto (nav->get_waypoints (helper.getExtra ()));
7076 });
7177}
7278
@@ -91,8 +97,7 @@ ::grpc::Status NavigationServer::GetObstacles(::grpc::ServerContext*,
9197 GetObstaclesResponse* response) noexcept {
9298 return make_service_helper<Navigation>(
9399 " NavigationServer::GetObstacles" , this , request)([&](auto & helper, auto & nav) {
94- const auto obstacles = nav->get_obstacles (helper.getExtra ());
95- vecToRepeatedPtr (obstacles, *response->mutable_obstacles ());
100+ *(response->mutable_obstacles ()) = v2::to_proto (nav->get_obstacles (helper.getExtra ()));
96101 });
97102}
98103
@@ -101,8 +106,7 @@ ::grpc::Status NavigationServer::GetPaths(::grpc::ServerContext*,
101106 GetPathsResponse* response) noexcept {
102107 return make_service_helper<Navigation>(
103108 " NavigationServer::GetPaths" , this , request)([&](auto & helper, auto & nav) {
104- const auto paths = nav->get_paths (helper.getExtra ());
105- vecToRepeatedPtr (paths, *response->mutable_paths (), to_proto);
109+ *response->mutable_paths () = v2::to_proto (nav->get_paths (helper.getExtra ()));
106110 });
107111}
108112
0 commit comments