7 StateComponent::StateComponent(std::unique_ptr<GateTypeComponent> component,
const std::string& state_identifier,
const std::string& neg_state_identifier)
8 : m_component(
std::move(component)), m_state_identifier(state_identifier), m_neg_state_identifier(neg_state_identifier)
12 std::unique_ptr<StateComponent> StateComponent::create(std::unique_ptr<GateTypeComponent> component,
const std::string& state_identifier,
const std::string& neg_state_identifier)
14 return std::unique_ptr<StateComponent>(
new StateComponent(std::move(component), state_identifier, neg_state_identifier));
24 return component->
get_type() == m_type;
27 std::vector<GateTypeComponent*> StateComponent::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());
50 const std::string& StateComponent::get_state_identifier()
const
52 return m_state_identifier;
55 void StateComponent::set_state_identifier(
const std::string& state_identifier)
57 m_state_identifier = state_identifier;
60 const std::string& StateComponent::get_neg_state_identifier()
const
62 return m_neg_state_identifier;
65 void StateComponent::set_neg_state_identifier(
const std::string& neg_state_identifier)
67 m_neg_state_identifier = neg_state_identifier;
virtual ComponentType get_type() const =0