/* * OutputDriver.cpp * * Created on: Aug 2, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #include "OutputDriver.h" #include #include namespace flippR_driver { namespace output { using namespace items; OutputDriver::OutputDriver(std::map> solenoids, std::map> lamps, std::map> sounds, std::map> displays) : solenoids(std::move(solenoids)), lamps(std::move(lamps)), sounds(std::move(sounds)), displays(std::move(displays)) {} std::vector> OutputDriver::get_sounds() { std::vector> sounds; boost::copy(this->sounds | boost::adaptors::map_values, std::back_inserter(sounds)); return sounds; } std::vector> OutputDriver::get_displays() { std::vector> displays; boost::copy(this->displays | boost::adaptors::map_values, std::back_inserter(displays)); return displays; } std::vector> OutputDriver::get_lamps() { std::vector> lamps; boost::copy(this->lamps | boost::adaptors::map_values, std::back_inserter(lamps)); return lamps; } std::vector> OutputDriver::get_solenoids() { std::vector> solenoids; boost::copy(this->solenoids | boost::adaptors::map_values, std::back_inserter(solenoids)); return solenoids; } boost::optional> OutputDriver::get_lamp(std::string name) { return this->lamps.find(name)->second; } boost::optional> OutputDriver::get_solenoid(std::string name) { return this->solenoids.find(name)->second; } boost::optional> OutputDriver::get_sound(std::string name) { return this->sounds.find(name)->second; } boost::optional> OutputDriver::get_display(char number) { return this->displays.find(number)->second; } } /* namespace output */ }