@@ -73,47 +73,6 @@ std::vector<ResourceName> RobotService_::generate_metadata_() {
7373 return metadata;
7474}
7575
76- std::vector<Status> RobotService_::generate_status_ (
77- const RepeatedPtrField<ResourceName>& resource_names) {
78- std::vector<Status> statuses;
79- for (const auto & cmp : resource_manager ()->resources ()) {
80- const std::shared_ptr<Resource> resource = cmp.second ;
81- for (const auto & kv : Registry::registered_models ()) {
82- const std::shared_ptr<const ModelRegistration> registration = kv.second ;
83- if (registration->api ().resource_subtype () == resource->api ().resource_subtype ()) {
84- bool resource_present = false ;
85- const ResourceName name = resource->get_resource_name ().to_proto ();
86- for (const auto & resource_name : resource_names) {
87- if (name.SerializeAsString () == resource_name.SerializeAsString ()) {
88- resource_present = true ;
89- break ;
90- }
91- }
92-
93- if (resource_present) {
94- const Status status = registration->create_status (resource);
95- statuses.push_back (status);
96- }
97- }
98- }
99- }
100-
101- std::vector<Status> returnable_statuses;
102- for (auto & status : statuses) {
103- bool status_name_is_known = false ;
104- for (const auto & resource_name : resource_names) {
105- if (status.name ().SerializeAsString () == resource_name.SerializeAsString ()) {
106- status_name_is_known = true ;
107- break ;
108- }
109- }
110- if (status_name_is_known) {
111- returnable_statuses.push_back (status);
112- }
113- }
114- return returnable_statuses;
115- }
116-
11776::grpc::Status RobotService_::ResourceNames (::grpc::ServerContext*,
11877 const viam::robot::v1::ResourceNamesRequest* request,
11978 viam::robot::v1::ResourceNamesResponse* response) {
@@ -129,55 +88,6 @@ ::grpc::Status RobotService_::ResourceNames(::grpc::ServerContext*,
12988 return ::grpc::Status ();
13089}
13190
132- ::grpc::Status RobotService_::GetStatus (::grpc::ServerContext*,
133- const ::viam::robot::v1::GetStatusRequest* request,
134- ::viam::robot::v1::GetStatusResponse* response) {
135- if (!request) {
136- return ::grpc::Status (::grpc::StatusCode::INVALID_ARGUMENT,
137- " Called [GetStatus] without a request" );
138- };
139-
140- RepeatedPtrField<Status>* response_status = response->mutable_status ();
141- const std::vector<Status> statuses = generate_status_ (request->resource_names ());
142- for (const Status& status : statuses) {
143- *response_status->Add () = status;
144- }
145-
146- return ::grpc::Status ();
147- }
148-
149- void RobotService_::stream_status (
150- const viam::robot::v1::StreamStatusRequest* request,
151- ::grpc::ServerWriter<::viam::robot::v1::StreamStatusResponse>* writer,
152- int interval) {
153- while (true ) {
154- const std::vector<Status> statuses = generate_status_ (request->resource_names ());
155- viam::robot::v1::StreamStatusResponse response;
156- RepeatedPtrField<Status>* response_status = response.mutable_status ();
157- for (const Status& status : statuses) {
158- *response_status->Add () = status;
159- }
160-
161- writer->Write (response);
162- std::this_thread::sleep_for (std::chrono::seconds (interval));
163- }
164- }
165-
166- ::grpc::Status RobotService_::StreamStatus (
167- ::grpc::ServerContext*,
168- const ::viam::robot::v1::StreamStatusRequest* request,
169- ::grpc::ServerWriter<::viam::robot::v1::StreamStatusResponse>* writer) {
170- uint64_t interval = 1 ;
171- if (request->every ().seconds () > 0 ) {
172- interval = request->every ().seconds ();
173- }
174-
175- const RepeatedPtrField<ResourceName> resource_names = request->resource_names ();
176- std::thread t (&RobotService_::stream_status, this , request, writer, interval);
177- t.detach ();
178- return ::grpc::Status ();
179- }
180-
18191::grpc::Status RobotService_::StopAll (::grpc::ServerContext*,
18292 const ::viam::robot::v1::StopAllRequest* request,
18393 ::viam::robot::v1::StopAllResponse*) {
0 commit comments