CIRCT 24.0.0git
Loading...
Searching...
No Matches
esi::Instance Class Reference

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

#include <Design.h>

Inheritance diagram for esi::Instance:
Collaboration diagram for esi::Instance:

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)
AppID getID () const
 Get the instance's ID, which it will always have.
Public Member Functions inherited from esi::HWModule
 HWModule (const HWModule &)=delete
HWModule & operator= (const HWModule &)=delete
virtual ~HWModule ()=default
std::optional< ModuleInfo > getInfo () const
 Access the module's metadata, if any.
std::vector< const Instance * > getChildrenOrdered () const
 Get a vector of the module's children in a deterministic order.
const std::map< AppID, Instance * > & getChildren () const
 Access the module's children by ID.
std::vector< std::reference_wrapper< BundlePort > > getPortsOrdered () const
 Get the module's ports in a deterministic order.
const std::map< AppID, BundlePort & > & getPorts () const
 Access the module's ports by ID.
const std::vector< services::Service * > & getServices () const
 Access the services provided by this module.
bool poll ()
 Master poll method.
const HWModule * resolveInst (const AppIDPath &path, AppIDPath &lastLookup) const
 Attempt to resolve a path to a module instance.
BundlePort * resolvePort (const AppIDPath &path, AppIDPath &lastLookup) const
 Attempt to resolve a path to a port.

Protected Attributes

const AppID id
Protected Attributes inherited from esi::HWModule
const std::optional< ModuleInfo > info
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, 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 111 of file Design.h.

Constructor & Destructor Documentation

◆ Instance() [1/3]

esi::Instance::Instance ( )
delete

Referenced by Instance().

◆ Instance() [2/3]

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

References Instance().

◆ ~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

Member Function Documentation

◆ getID()

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

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

Definition at line 124 of file Design.h.

References id.

Referenced by NB_MODULE().

Member Data Documentation

◆ id

const AppID esi::Instance::id
protected

Definition at line 127 of file Design.h.

Referenced by esiaccel.types.ESIType::__eq__(), getID(), and Instance().


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