SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
simics::systemc::simics2tlm::MultiGasketOwner Class Reference

Container class for multiple GasketOwners, each given a unique ID. More...

#include <multi_gasket_owner.h>

Inheritance diagram for simics::systemc::simics2tlm::MultiGasketOwner:
simics::systemc::simics2tlm::GasketOwner simics::systemc::ClassType simics::systemc::simics2tlm::IoMemory

Public Member Functions

void addGasket (int id, GasketInterface::Ptr gasketInterface)
 
GasketInterface::Ptr findGasket (int id) const
 Returns the gasket matching the ID given.
 
std::set< int > keys () const
 
virtual ~MultiGasketOwner ()
 
- Public Member Functions inherited from simics::systemc::simics2tlm::GasketOwner
 GasketOwner ()
 
 GasketOwner (const GasketOwner &)=delete
 
GasketOwneroperator= (const GasketOwner &)=delete
 
virtual ~GasketOwner ()=default
 
void set_gasket (GasketInterface::Ptr gasketInterface)
 
virtual void gasketUpdated ()
 
GasketInterface::Ptr gasket () const
 
- Public Member Functions inherited from simics::systemc::ClassType
 ClassType ()
 
std::string type () const
 
bool operator== (const ClassType &type) const
 
bool operator!= (const ClassType &type) const
 
bool operator< (const ClassType &type) const
 
template<class T >
T * get_interface ()
 
virtual ~ClassType ()
 

Protected Member Functions

bool hasId (int id) const
 
int empty () const
 
- Protected Member Functions inherited from simics::systemc::ClassType
void set_type ()
 

Additional Inherited Members

- Static Public Member Functions inherited from simics::systemc::ClassType
template<class T >
static ClassType typeForClass ()
 
- Protected Attributes inherited from simics::systemc::simics2tlm::GasketOwner
GasketInterface::Ptr gasket_
 
- Protected Attributes inherited from simics::systemc::ClassType
std::string type_
 
ClassTypeimplementor_
 

Detailed Description

Container class for multiple GasketOwners, each given a unique ID.

This is useful for protocols where the interface implementation can de-mux a single Simics interface into multiple TLM target sockets, like the IoMemory for example. There must always be at least one valid gasket, which is guaranteed by the GasketOwner base class. See findGasket() for details.

Constructor & Destructor Documentation

◆ ~MultiGasketOwner()

virtual simics::systemc::simics2tlm::MultiGasketOwner::~MultiGasketOwner ( )
inlinevirtual

Member Function Documentation

◆ addGasket()

void simics::systemc::simics2tlm::MultiGasketOwner::addGasket ( int  id,
GasketInterface::Ptr  gasketInterface 
)
inline

◆ empty()

int simics::systemc::simics2tlm::MultiGasketOwner::empty ( ) const
inlineprotected

◆ findGasket()

GasketInterface::Ptr simics::systemc::simics2tlm::MultiGasketOwner::findGasket ( int  id) const
inline

Returns the gasket matching the ID given.

If no such ID could be found, the gasket with the lowest ID is returned instead. If no gasket was added to this container with an ID, the gasket assigned to the base class (by GasketOwner::set_gasket()) is returned. The base class guarantees that such a gasket must exist.

◆ hasId()

bool simics::systemc::simics2tlm::MultiGasketOwner::hasId ( int  id) const
inlineprotected

◆ keys()

std::set< int > simics::systemc::simics2tlm::MultiGasketOwner::keys ( ) const
inline

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