/* * ValueTrigger.cpp * * Created on: 22 апр. 2020 г. * Author: LeonidTitov */ #include "ValueTrigger.hh" bool schematic::ValueTrigger::setup( Type type, Id id, Condition condition, Value value, std::pair threshold ) { TriggerProviders::iterator iter = triggers.find( type ); if( iter != triggers.end() ) { systemic::IValue * trig = iter->second->setup( id, condition, value, threshold ); state = false; implement = trig; trigger_interface = iter->second; } else reset(false); return implement; } void schematic::ValueTrigger::reset(bool new_state) { state = new_state; implement = nullptr; trigger_interface = nullptr; } schematic::ValueTrigger::operator bool() const { return implement ? *implement : state; } schematic::ValueTrigger::ValueTrigger( std::pmr::memory_resource * description ) : implement(nullptr), trigger_interface(nullptr), state(false), triggers(std::less(), description) { } void schematic::ValueTrigger::get_threshold( std::pair buff ) const { if( trigger_interface ) trigger_interface->get_threshold( buff ); }