16#ifndef SIMICS_SYSTEMC_SIMICS2TLM_GASKET_ADAPTER_H
17#define SIMICS_SYSTEMC_SIMICS2TLM_GASKET_ADAPTER_H
28#define GASKET_ADAPTER_PORT_CLASS(name, gasket_adapter) \
30 : public simics::systemc::simics2tlm::gasket_adapter, \
31 public simics::systemc::simics2tlm::GasketAdapter<name> { \
33 using gasket_adapter::gasket_adapter; \
34 virtual ~name() = default; \
35 simics::systemc::simics2tlm::GasketOwner *gasket_owner() const override {\
36 return gasket_adapter::gasket_owner(); \
44template<
typename TBase>
56 std::set<int> keys = multi_owner->
keys();
60 std::vector<std::string> result;
61 for (
auto i = keys.begin(); i != keys.end(); ++i) {
62 std::vector<std::string> r =
67 result.push_back(r[0]);
68 result.push_back(r[1]);
82 void append(std::string *result, std::string s) {
83 if (result->empty()) {
94 return {gasket_ptr->gasket_name(),
95 gasket_ptr->get_target_socket()->name()};
Definition: description_interface.h:34
Definition: gasket_adapter.h:45
virtual simics2tlm::GasketOwner * gasket_owner() const =0
void append(std::string *result, std::string s)
Definition: gasket_adapter.h:82
std::vector< std::string > description(DescriptionType type) override
Definition: gasket_adapter.h:49
virtual ~GasketAdapter()
Definition: gasket_adapter.h:47
std::vector< std::string > description(GasketInterface::Ptr gasket_ptr)
Definition: gasket_adapter.h:90
std::shared_ptr< GasketInterface > Ptr
Definition: gasket_interface.h:37
Base class, responsible for handling a gasket.
Definition: gasket_owner.h:32
GasketInterface::Ptr gasket() const
Definition: gasket_owner.h:46
Container class for multiple GasketOwners, each given a unique ID.
Definition: multi_gasket_owner.h:39
std::set< int > keys() const
Definition: multi_gasket_owner.h:78
DescriptionType
Definition: description_interface.h:25
@ DESCRIPTION_TYPE_SIMICS2TLM
Definition: description_interface.h:26
Definition: pci_bus_interface.h:24