HAL
hal::InitComponent Class Reference

#include <init_component.h>

Inheritance diagram for hal::InitComponent:
Inheritance graph
Collaboration diagram for hal::InitComponent:
Collaboration graph

Public Member Functions

 InitComponent (const std::string &init_category, const std::vector< std::string > &init_identifiers)
 
ComponentType get_type () const override
 
std::vector< GateTypeComponent * > get_components (const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const override
 
const std::string & get_init_category () const
 
void set_init_category (const std::string &init_category)
 
const std::vector< std::string > & get_init_identifiers () const
 
void set_init_identifiers (const std::vector< std::string > &init_identifiers)
 
- Public Member Functions inherited from hal::GateTypeComponent
virtual ~GateTypeComponent ()=default
 
template<typename T >
T * convert_to ()
 
template<typename T >
const T * convert_to () const
 
GateTypeComponentget_component (const std::function< bool(const GateTypeComponent *)> &filter=nullptr) const
 
template<typename T >
T * get_component_as (const std::function< bool(const GateTypeComponent *)> &filter=nullptr)
 

Static Public Member Functions

static bool is_class_of (const GateTypeComponent *component)
 
- Static Public Member Functions inherited from hal::GateTypeComponent
static std::unique_ptr< GateTypeComponentcreate_lut_component (std::unique_ptr< GateTypeComponent > component, bool init_ascending)
 
static std::unique_ptr< GateTypeComponentcreate_ff_component (std::unique_ptr< GateTypeComponent > component, const BooleanFunction &next_state_bf, const BooleanFunction &clock_bf)
 
static std::unique_ptr< GateTypeComponentcreate_latch_component (std::unique_ptr< GateTypeComponent > component)
 
static std::unique_ptr< GateTypeComponentcreate_ram_component (std::unique_ptr< GateTypeComponent > component, const u32 bit_size)
 
static std::unique_ptr< GateTypeComponentcreate_mac_component ()
 
static std::unique_ptr< GateTypeComponentcreate_init_component (const std::string &init_category, const std::vector< std::string > &init_identifiers)
 
static std::unique_ptr< GateTypeComponentcreate_state_component (std::unique_ptr< GateTypeComponent > component, const std::string &state_identifier, const std::string &neg_state_identifier)
 
static std::unique_ptr< GateTypeComponentcreate_ram_port_component (std::unique_ptr< GateTypeComponent > component, const std::string &data_group, const std::string &addr_group, const BooleanFunction &clock_bf, const BooleanFunction &enable_bf, bool is_write)
 

Additional Inherited Members

- Public Types inherited from hal::GateTypeComponent
enum class  ComponentType {
  lut , ff , latch , ram ,
  mac , init , state , ram_port
}
 

Detailed Description

Definition at line 32 of file init_component.h.

Constructor & Destructor Documentation

◆ InitComponent()

hal::InitComponent::InitComponent ( const std::string &  init_category,
const std::vector< std::string > &  init_identifiers 
)

Construct a new InitComponent with given child component, the category and a vector of identifiers pointing to the initialization data.

Parameters
[in]init_category- The data category.
[in]init_identifiers- The data identifiers.

Definition at line 5 of file init_component.cpp.

Member Function Documentation

◆ get_components()

std::vector< GateTypeComponent * > hal::InitComponent::get_components ( const std::function< bool(const GateTypeComponent *)> &  filter = nullptr) const
overridevirtual

Get the sub-components of the gate type component. A user-defined filter may be applied to the result vector, but is disabled by default.

Parameters
[in]filter- The user-defined filter function applied to all candidate components.
Returns
The sub-components of the gate type component.

Implements hal::GateTypeComponent.

Definition at line 19 of file init_component.cpp.

References UNUSED.

◆ get_init_category()

const std::string & hal::InitComponent::get_init_category ( ) const

Get the category in which to find the initialization data.

Returns
The data category.

Definition at line 25 of file init_component.cpp.

Referenced by hal::Gate::add_boolean_function(), hal::gate_type_components_init(), hal::Gate::get_init_data(), and hal::Gate::set_init_data().

◆ get_init_identifiers()

const std::vector< std::string > & hal::InitComponent::get_init_identifiers ( ) const

Get the vector of identifiers at which to find initialization data.

Returns
The data identifiers.

Definition at line 35 of file init_component.cpp.

Referenced by hal::Gate::add_boolean_function(), hal::gate_type_components_init(), hal::Gate::get_init_data(), and hal::Gate::set_init_data().

◆ get_type()

InitComponent::ComponentType hal::InitComponent::get_type ( ) const
overridevirtual

Get the type of the gate type component.

Returns
The type of the gate type component.

Implements hal::GateTypeComponent.

Definition at line 9 of file init_component.cpp.

◆ is_class_of()

bool hal::InitComponent::is_class_of ( const GateTypeComponent component)
static

Check whether a component is an InitComponent.

Parameters
[in]component- The component to check.
Returns
True if component is an InitComponent, false otherwise.

Definition at line 14 of file init_component.cpp.

References hal::GateTypeComponent::get_type().

Referenced by hal::gate_type_components_init(), hal::InitWizardPage::setData(), and hal::GatelibraryFrameInit::update().

◆ set_init_category()

void hal::InitComponent::set_init_category ( const std::string &  init_category)

Set the category in which to find the initialization data.

Parameters
[in]init_category- The data category.

Definition at line 30 of file init_component.cpp.

Referenced by hal::gate_type_components_init().

◆ set_init_identifiers()

void hal::InitComponent::set_init_identifiers ( const std::vector< std::string > &  init_identifiers)

Set the vector of identifiers at which to find initialization data.

Parameters
[in]init_identifiers- The data identifiers.

Definition at line 40 of file init_component.cpp.

Referenced by hal::gate_type_components_init().


The documentation for this class was generated from the following files: