From bdb56fcfaebf7440c94abe57e7a7956a88f0b3d9 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Sun, 7 Mar 2021 17:33:13 +0100 Subject: [PATCH] Return empty optional --- .../json_example/output/Lamp_Config.json | 2 +- .../src/output/detail/OutputDriver.cpp | 30 +++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/FlippR-Driver/contrib/json_example/output/Lamp_Config.json b/FlippR-Driver/contrib/json_example/output/Lamp_Config.json index 6e60bbd..a8a8191 100644 --- a/FlippR-Driver/contrib/json_example/output/Lamp_Config.json +++ b/FlippR-Driver/contrib/json_example/output/Lamp_Config.json @@ -303,7 +303,7 @@ }, { "address" : 50, - "name" : "Bonux Multiplier x50" + "name" : "Bonus Multiplier x50" }, { "address" : 51, diff --git a/FlippR-Driver/src/output/detail/OutputDriver.cpp b/FlippR-Driver/src/output/detail/OutputDriver.cpp index 4842be1..2ba8af3 100644 --- a/FlippR-Driver/src/output/detail/OutputDriver.cpp +++ b/FlippR-Driver/src/output/detail/OutputDriver.cpp @@ -129,27 +129,47 @@ std::vector> OutputDriver::get_solenoids() const boost::optional> OutputDriver::get_lamp(const std::string &name) const { - return this->lamps.find(name)->second; + auto lamp = this->lamps.find(name); + if(lamp == this->lamps.end()) { + return boost:optional>(); + } + return lamp->second; } boost::optional> OutputDriver::get_solenoid(const std::string &name) const { - return this->solenoids.find(name)->second; + auto solenoid = this->solenoids.find(name); + if(solenoid == this->solenoids.end()) { + return boost:optional>(); + } + return solenoid->second; } boost::optional> OutputDriver::get_sound(const std::string &name) const { - return this->sounds.find(name)->second; + auto sound = this->sounds.find(name); + if(sound == this->sounds.end()) { + return boost:optional>(); + } + return sound->second; } boost::optional> OutputDriver::get_flipper(const std::string &name) const { - return this->flippers.find(name)->second; + auto flipper = this->flippers.find(name); + if(flipper == this->flippers.end()) { + return boost:optional>(); + } + return flipper->second; } boost::optional> OutputDriver::get_display(const std::string &name) const { - return this->displays.find(name)->second; + auto display = this->displays.find(name); + if(display == this->displays.end()) { + return boost:optional>(); + } + return display->second; } void OutputDriver::shut_down_driver() const