Pass the TargetDescriptor by const-reference where we can

This commit is contained in:
Nav
2022-12-17 14:41:52 +00:00
parent d9d8b3f450
commit a1defa02c0
5 changed files with 9 additions and 9 deletions

View File

@@ -13,7 +13,7 @@ namespace Bloom::TargetController::Responses
public: public:
static constexpr ResponseType type = ResponseType::TARGET_DESCRIPTOR; static constexpr ResponseType type = ResponseType::TARGET_DESCRIPTOR;
Targets::TargetDescriptor targetDescriptor; const Targets::TargetDescriptor& targetDescriptor;
explicit TargetDescriptor(const Targets::TargetDescriptor& targetDescriptor) explicit TargetDescriptor(const Targets::TargetDescriptor& targetDescriptor)
: targetDescriptor(targetDescriptor) : targetDescriptor(targetDescriptor)

View File

@@ -634,7 +634,7 @@ namespace Bloom::TargetController
} }
void TargetControllerComponent::loadRegisterDescriptors() { void TargetControllerComponent::loadRegisterDescriptors() {
auto& targetDescriptor = this->getTargetDescriptor(); const auto& targetDescriptor = this->getTargetDescriptor();
for (const auto& [registerType, registerDescriptors] : targetDescriptor.registerDescriptorsByType) { for (const auto& [registerType, registerDescriptors] : targetDescriptor.registerDescriptorsByType) {
for (const auto& registerDescriptor : registerDescriptors) { for (const auto& registerDescriptor : registerDescriptors) {
@@ -753,12 +753,12 @@ namespace Bloom::TargetController
EventManager::triggerEvent(std::make_shared<Events::ProgrammingModeDisabled>()); EventManager::triggerEvent(std::make_shared<Events::ProgrammingModeDisabled>());
} }
Targets::TargetDescriptor& TargetControllerComponent::getTargetDescriptor() { const Targets::TargetDescriptor& TargetControllerComponent::getTargetDescriptor() {
if (!this->cachedTargetDescriptor.has_value()) { if (!this->cachedTargetDescriptor.has_value()) {
this->cachedTargetDescriptor = this->target->getDescriptor(); this->cachedTargetDescriptor.emplace(this->target->getDescriptor());
} }
return this->cachedTargetDescriptor.value(); return *this->cachedTargetDescriptor;
} }
void TargetControllerComponent::onShutdownTargetControllerEvent(const Events::ShutdownTargetController&) { void TargetControllerComponent::onShutdownTargetControllerEvent(const Events::ShutdownTargetController&) {

View File

@@ -144,7 +144,7 @@ namespace Bloom::TargetController
/** /**
* Obtaining a TargetDescriptor for the connected target can be quite expensive. We cache it here. * Obtaining a TargetDescriptor for the connected target can be quite expensive. We cache it here.
*/ */
std::optional<Targets::TargetDescriptor> cachedTargetDescriptor; std::optional<const Targets::TargetDescriptor> cachedTargetDescriptor;
/** /**
* Target register descriptors mapped by the memory type on which the register is stored. * Target register descriptors mapped by the memory type on which the register is stored.
@@ -313,7 +313,7 @@ namespace Bloom::TargetController
* *
* @return * @return
*/ */
Targets::TargetDescriptor& getTargetDescriptor(); const Targets::TargetDescriptor& getTargetDescriptor();
/** /**
* Invokes a shutdown. * Invokes a shutdown.

View File

@@ -103,7 +103,7 @@ namespace Bloom::TargetController
return; return;
} }
TargetDescriptor TargetControllerConsole::getTargetDescriptor() { const TargetDescriptor& TargetControllerConsole::getTargetDescriptor() {
return this->commandManager.sendCommandAndWaitForResponse( return this->commandManager.sendCommandAndWaitForResponse(
std::make_unique<GetTargetDescriptor>(), std::make_unique<GetTargetDescriptor>(),
this->defaultTimeout this->defaultTimeout

View File

@@ -64,7 +64,7 @@ namespace Bloom::TargetController
* *
* @return * @return
*/ */
Targets::TargetDescriptor getTargetDescriptor(); const Targets::TargetDescriptor& getTargetDescriptor();
/** /**
* Fetches the current target state. * Fetches the current target state.