Skip to content

Commit

Permalink
More const and .at() usage
Browse files Browse the repository at this point in the history
Signed-off-by: Kai-Uwe Hermann <[email protected]>
  • Loading branch information
hikinggrass committed Nov 13, 2024
1 parent 8843fea commit 93e25e4
Show file tree
Hide file tree
Showing 12 changed files with 252 additions and 249 deletions.
9 changes: 5 additions & 4 deletions everestpy/src/everest/misc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ ModuleSetup create_setup_from_config(const std::string& module_id, Everest::Conf
ModuleSetup setup;

const std::string& module_name = config.get_main_config().at(module_id).at("module");
auto module_manifest = config.get_manifests().at(module_name);
const auto module_manifest = config.get_manifests().at(module_name);

// setup connections
for (auto& requirement : module_manifest.at("requires").items()) {
for (const auto& requirement : module_manifest.at("requires").items()) {

auto const& requirement_id = requirement.key();
const auto& requirement_id = requirement.key();

json req_route_list = config.resolve_requirement(module_id, requirement_id);
// if this was a requirement with min_connections == 1 and max_connections == 1,
Expand All @@ -96,7 +96,8 @@ ModuleSetup create_setup_from_config(const std::string& module_id, Everest::Conf

for (std::size_t i = 0; i < req_route_list.size(); i++) {
const auto& req_route = req_route_list[i];
auto fulfillment = Fulfillment{req_route["module_id"], req_route["implementation_id"], {requirement_id, i}};
const auto fulfillment =
Fulfillment{req_route["module_id"], req_route["implementation_id"], {requirement_id, i}};
fulfillment_list.emplace_back(std::move(fulfillment));
}
}
Expand Down
10 changes: 5 additions & 5 deletions everestpy/src/everest/module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include <utils/error/error_state_monitor.hpp>

std::unique_ptr<Everest::Everest>
Module::create_everest_instance(const std::string& module_id, Everest::Config& config,
Module::create_everest_instance(const std::string& module_id, const Everest::Config& config,
const Everest::RuntimeSettings& rs,
std::shared_ptr<Everest::MQTTAbstraction> mqtt_abstraction) {
return std::make_unique<Everest::Everest>(module_id, config, rs.validate_schema, mqtt_abstraction,
Expand All @@ -33,28 +33,28 @@ Module::Module(const std::string& module_id_, const RuntimeSession& session_) :

this->config_ = std::make_unique<Everest::Config>(session.get_mqtt_settings(), result);

auto& config = get_config();
const auto& config = get_config();

this->handle = create_everest_instance(module_id, config, *this->rs, this->mqtt_abstraction);

// determine the fulfillments for our requirements
const std::string& module_name = config.get_main_config().at(module_id).at("module");
auto module_manifest = config.get_manifests().at(module_name);
const auto module_manifest = config.get_manifests().at(module_name);

// setup module info
module_info = config.get_module_info(module_id);
populate_module_info_path_from_runtime_settings(module_info, *this->rs);

// setup implementations
for (auto& implementation : module_manifest.at("provides").items()) {
for (const auto& implementation : module_manifest.at("provides").items()) {
const auto& implementation_id = implementation.key();
const std::string interface_name = implementation.value().at("interface");
const auto& interface_def = config.get_interface_definition(interface_name);
implementations.emplace(implementation_id, create_everest_interface_from_definition(interface_def));
}

// setup requirements
for (auto& requirement : module_manifest.at("requires").items()) {
for (const auto& requirement : module_manifest.at("requires").items()) {
const auto& requirement_id = requirement.key();
const std::string interface_name = requirement.value().at("interface");
const auto& interface_def = config.get_interface_definition(interface_name);
Expand Down
3 changes: 2 additions & 1 deletion everestpy/src/everest/module.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,8 @@ class Module {
std::deque<std::function<void(json)>> err_cleared_susbcription_callbacks{};

static std::unique_ptr<Everest::Everest>
create_everest_instance(const std::string& module_id, Everest::Config& config, const Everest::RuntimeSettings& rs,
create_everest_instance(const std::string& module_id, const Everest::Config& config,
const Everest::RuntimeSettings& rs,
std::shared_ptr<Everest::MQTTAbstraction> mqtt_abstraction);

ModuleInfo module_info{};
Expand Down
19 changes: 9 additions & 10 deletions include/utils/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,40 +109,39 @@ class ConfigBase {

///
/// \returns a json object that contains the main config
// FIXME (aw): this should be const and return the config by const ref!
json get_main_config();
const json& get_main_config() const;

///
/// \brief checks if the config contains the given \p module_id
bool contains(const std::string& module_id) const;

///
/// \returns a json object that contains the manifests
const json& get_manifests();
const json& get_manifests() const;

///
/// \returns a json object that contains the interface definitions
json get_interface_definitions();
const json& get_interface_definitions() const;

///
/// \returns a json object that contains the available interfaces
json get_interfaces();
const json& get_interfaces() const;

///
/// \returns a json object that contains the settings
const json get_settings();
const json& get_settings() const;

///
/// \returns a json object that contains the schemas
json get_schemas();
const json get_schemas() const;

///
/// \returns a json object that contains the schemas
json get_error_types_map();

///
/// \returns a json object that contains the types
json get_types();
const json& get_types() const;

///
/// \returns the module config cache
Expand Down Expand Up @@ -311,15 +310,15 @@ class Config : public ConfigBase {
/// authors, license)
///
/// \returns a ModuleInfo object
ModuleInfo get_module_info(const std::string& module_id);
ModuleInfo get_module_info(const std::string& module_id) const;

///
/// \returns a TelemetryConfig if this has been configured
std::optional<TelemetryConfig> get_telemetry_config();

///
/// \returns a json object that contains the interface definition
json get_interface_definition(const std::string& interface_name);
json get_interface_definition(const std::string& interface_name) const;

///
/// \brief A json schema loader that can handle type refs and otherwise uses the builtin draft7 schema of
Expand Down
Loading

0 comments on commit 93e25e4

Please sign in to comment.