6 : m_component(
std::move(component)), m_next_state_bf(next_state_bf.clone()), m_clock_bf(clock_bf.clone())
17 return component->
get_type() == m_type;
22 if (m_component !=
nullptr)
24 std::vector<GateTypeComponent*> res = m_component->get_components(filter);
27 if (filter(m_component.get()))
29 res.push_back(m_component.get());
34 res.push_back(m_component.get());
45 return m_next_state_bf.
clone();
50 m_next_state_bf = next_state_bf.
clone();
55 return m_clock_bf.
clone();
60 m_clock_bf = clock_bf.
clone();
65 return m_async_reset_bf.
clone();
70 m_async_reset_bf = async_reset_bf.
clone();
75 return m_async_set_bf.
clone();
80 m_async_set_bf = async_set_bf.
clone();
85 return m_async_set_reset_behavior;
90 m_async_set_reset_behavior = std::make_pair(behav_state, behav_neg_state);
BooleanFunction clone() const
void set_clock_function(const BooleanFunction &clock_bf)
void set_async_set_reset_behavior(const AsyncSetResetBehavior behav_state, const AsyncSetResetBehavior behav_neg_state)
void set_async_set_function(const BooleanFunction &async_set_bf)
BooleanFunction get_clock_function() const
const std::pair< AsyncSetResetBehavior, AsyncSetResetBehavior > & get_async_set_reset_behavior() const
FFComponent(std::unique_ptr< GateTypeComponent > component, const BooleanFunction &next_state_bf, const BooleanFunction &clock_bf)
BooleanFunction get_async_set_function() const
static bool is_class_of(const GateTypeComponent *component)
BooleanFunction get_async_reset_function() const
BooleanFunction get_next_state_function() const
void set_next_state_function(const BooleanFunction &next_state_bf)
std::vector< GateTypeComponent * > get_components(const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const override
void set_async_reset_function(const BooleanFunction &async_reset_bf)
ComponentType get_type() const override
virtual ComponentType get_type() const =0