diff --git a/src/viam/examples/modules/complex/proto/buf.lock b/src/viam/examples/modules/complex/proto/buf.lock index b46be1102..05bb0713a 100644 --- a/src/viam/examples/modules/complex/proto/buf.lock +++ b/src/viam/examples/modules/complex/proto/buf.lock @@ -4,5 +4,5 @@ deps: - remote: buf.build owner: googleapis repository: googleapis - commit: 7e6f6e774e29406da95bd61cdcdbc8bc - digest: shake256:fe43dd2265ea0c07d76bd925eeba612667cf4c948d2ce53d6e367e1b4b3cb5fa69a51e6acb1a6a50d32f894f054a35e6c0406f6808a483f2752e10c866ffbf73 + commit: ee48893a270147348e3edc6c1a03de0e + digest: shake256:a35b0576a2b55dad72747e786af05c03539c2b96be236c9de39fe10d551931ac252eb68445c0cef6bbd27fa20e8c26eee5b8a9fe9c2fde6f63a03e18f8cf980d diff --git a/src/viam/sdk/common/utils.cpp b/src/viam/sdk/common/utils.cpp index fb7adc455..26d0ab888 100644 --- a/src/viam/sdk/common/utils.cpp +++ b/src/viam/sdk/common/utils.cpp @@ -23,29 +23,6 @@ namespace sdk { using time_point = std::chrono::time_point; -// TODO: RSDK-6627 : move this function to `Resource` class. -std::vector resource_names_for_resource(const std::shared_ptr& resource) { - std::string resource_type; - std::string resource_subtype; - std::vector resource_names; - for (const auto& kv : Registry::registered_models()) { - const std::shared_ptr reg = kv.second; - if (reg->api().to_string() == resource->api().to_string()) { - resource_type = reg->api().resource_type(); - resource_subtype = reg->api().resource_subtype(); - } else { - continue; - } - - if (resource_subtype.empty()) { - resource_subtype = resource->name(); - } - - resource_names.push_back({{kRDK, resource_type, resource_subtype}, "", resource->name()}); - } - return resource_names; -} - std::vector string_to_bytes(const std::string& s) { std::vector bytes(s.begin(), s.end()); return bytes; diff --git a/src/viam/sdk/common/utils.hpp b/src/viam/sdk/common/utils.hpp index 797a82fe6..0f6c1ed8e 100644 --- a/src/viam/sdk/common/utils.hpp +++ b/src/viam/sdk/common/utils.hpp @@ -23,8 +23,6 @@ const std::string kService = "service"; const std::string kRDK = "rdk"; const std::string kBuiltin = "builtin"; -std::vector resource_names_for_resource(const std::shared_ptr& resource); - struct response_metadata { std::chrono::time_point captured_at; diff --git a/src/viam/sdk/resource/resource.cpp b/src/viam/sdk/resource/resource.cpp index 876f0a4f5..65f84d63b 100644 --- a/src/viam/sdk/resource/resource.cpp +++ b/src/viam/sdk/resource/resource.cpp @@ -4,6 +4,7 @@ #include #include +#include #include namespace viam { diff --git a/src/viam/sdk/robot/service.cpp b/src/viam/sdk/robot/service.cpp index e2b421913..c3ed8808d 100644 --- a/src/viam/sdk/robot/service.cpp +++ b/src/viam/sdk/robot/service.cpp @@ -30,6 +30,30 @@ using google::protobuf::RepeatedPtrField; using viam::common::v1::ResourceName; using viam::robot::v1::Status; +namespace { +std::vector registered_models_for_resource(const std::shared_ptr& resource) { + std::string resource_type; + std::string resource_subtype; + std::vector resource_names; + for (const auto& kv : Registry::registered_models()) { + const std::shared_ptr reg = kv.second; + if (reg->api() == resource->api()) { + resource_type = reg->api().resource_type(); + resource_subtype = reg->api().resource_subtype(); + } else { + continue; + } + + if (resource_subtype.empty()) { + resource_subtype = resource->name(); + } + + resource_names.push_back({{kRDK, resource_type, resource_subtype}, "", resource->name()}); + } + return resource_names; +} +} // namespace + RobotService_::RobotService_(const std::shared_ptr& manager, Server& server) : ResourceServer(manager) { server.register_service(this); @@ -42,8 +66,8 @@ RobotService_::RobotService_(const std::shared_ptr& manager, Se std::vector RobotService_::generate_metadata_() { std::vector metadata; for (const auto& key_and_val : resource_manager()->resources()) { - for (const Name& resource : resource_names_for_resource(key_and_val.second)) { - metadata.push_back(resource.to_proto()); + for (const Name& name : registered_models_for_resource(key_and_val.second)) { + metadata.push_back(name.to_proto()); } } return metadata;