7 StateTableComponent::StateTableComponent(std::unique_ptr<GateTypeComponent> component, std::vector<StateTable> tables)
8 : m_component(
std::move(component)), m_tables(
std::move(tables))
12 std::unique_ptr<StateTableComponent> StateTableComponent::create(std::unique_ptr<GateTypeComponent> component, std::vector<StateTable> tables)
14 return std::unique_ptr<StateTableComponent>(
new StateTableComponent(std::move(component), std::move(tables)));
24 return component->
get_type() == m_type;
27 std::vector<GateTypeComponent*> StateTableComponent::get_components(
const std::function<
bool(
const GateTypeComponent*)>& filter)
const
29 if (m_component !=
nullptr)
31 std::vector<GateTypeComponent*> res = m_component->get_components(filter);
34 if (filter(m_component.get()))
36 res.push_back(m_component.get());
41 res.push_back(m_component.get());
48 const std::vector<StateTableComponent::StateTable>& StateTableComponent::get_state_tables()
const
57 if (t.pin_name == pin_name)
62 return ERR(
"no state table found for pin '" + pin_name +
"'");
69 return ERR(
"pin is nullptr");
71 return get_state_table_for_pin(pin->
get_name());
const std::string & get_name() const
virtual ComponentType get_type() const =0