CIRCT  20.0.0git
Public Member Functions | Protected Attributes | List of all members
esi::Instance Class Reference

Subclass of HWModule which represents a submodule instance. More...

#include <Design.h>

Inheritance diagram for esi::Instance:
Inheritance graph
[legend]
Collaboration diagram for esi::Instance:
Collaboration graph
[legend]

Public Member Functions

 Instance ()=delete
 
 Instance (const Instance &)=delete
 
 ~Instance ()=default
 
 Instance (AppID id, std::optional< ModuleInfo > info, std::vector< std::unique_ptr< Instance >> children, std::vector< services::Service * > services, std::vector< std::unique_ptr< BundlePort >> &ports)
 
const AppID getID () const
 Get the instance's ID, which it will always have. More...
 
- Public Member Functions inherited from esi::HWModule
virtual ~HWModule ()=default
 
std::optional< ModuleInfogetInfo () const
 Access the module's metadata, if any. More...
 
std::vector< const Instance * > getChildrenOrdered () const
 Get a vector of the module's children in a deterministic order. More...
 
const std::map< AppID, Instance * > & getChildren () const
 Access the module's children by ID. More...
 
std::vector< std::reference_wrapper< BundlePort > > getPortsOrdered () const
 Get the module's ports in a deterministic order. More...
 
const std::map< AppID, const BundlePort & > & getPorts () const
 Access the module's ports by ID. More...
 
const std::vector< services::Service * > & getServices () const
 Access the services provided by this module. More...
 
bool poll ()
 Master poll method. More...
 

Protected Attributes

const AppID id
 
- Protected Attributes inherited from esi::HWModule
const std::optional< ModuleInfoinfo
 
const std::vector< std::unique_ptr< Instance > > children
 
const std::map< AppID, Instance * > childIndex
 
const std::vector< services::Service * > services
 
const std::vector< std::unique_ptr< BundlePort > > ports
 
const std::map< AppID, const BundlePort & > portIndex
 

Additional Inherited Members

- Protected Member Functions inherited from esi::HWModule
 HWModule (std::optional< ModuleInfo > info, std::vector< std::unique_ptr< Instance >> children, std::vector< services::Service * > services, std::vector< std::unique_ptr< BundlePort >> &ports)
 

Detailed Description

Subclass of HWModule which represents a submodule instance.

Adds an AppID, which the top level doesn't have or need.

Definition at line 100 of file Design.h.

Constructor & Destructor Documentation

◆ Instance() [1/3]

esi::Instance::Instance ( )
delete

◆ Instance() [2/3]

esi::Instance::Instance ( const Instance )
delete

◆ ~Instance()

esi::Instance::~Instance ( )
default

◆ Instance() [3/3]

esi::Instance::Instance ( AppID  id,
std::optional< ModuleInfo info,
std::vector< std::unique_ptr< Instance >>  children,
std::vector< services::Service * >  services,
std::vector< std::unique_ptr< BundlePort >> &  ports 
)
inline

Definition at line 105 of file Design.h.

Member Function Documentation

◆ getID()

const AppID esi::Instance::getID ( ) const
inline

Get the instance's ID, which it will always have.

Definition at line 112 of file Design.h.

References id.

Referenced by PYBIND11_MODULE().

Member Data Documentation

◆ id

const AppID esi::Instance::id
protected

Definition at line 115 of file Design.h.

Referenced by getID().


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