14#ifndef SIMICS_SYSTEMC_SIMICS2TLM_GASKET_ADAPTER_H
15#define SIMICS_SYSTEMC_SIMICS2TLM_GASKET_ADAPTER_H
26#define GASKET_ADAPTER_PORT_CLASS(name, gasket_adapter) \
28 : public simics::systemc::simics2tlm::gasket_adapter, \
29 public simics::systemc::simics2tlm::GasketAdapter<name> { \
31 using gasket_adapter::gasket_adapter; \
32 virtual ~name() = default; \
33 simics::systemc::simics2tlm::GasketOwner *gasket_owner() const override {\
34 return gasket_adapter::gasket_owner(); \
42template<
typename TBase>
54 std::set<int> keys = multi_owner->
keys();
58 std::vector<std::string> result;
59 for (
auto i = keys.begin(); i != keys.end(); ++i) {
60 std::vector<std::string> r =
65 result.push_back(r[0]);
66 result.push_back(r[1]);
80 void append(std::string *result, std::string s) {
81 if (result->empty()) {
92 return {gasket_ptr->gasket_name(),
93 gasket_ptr->get_target_socket()->name()};
Definition: description_interface.h:32
Definition: gasket_adapter.h:43
virtual simics2tlm::GasketOwner * gasket_owner() const =0
void append(std::string *result, std::string s)
Definition: gasket_adapter.h:80
std::vector< std::string > description(DescriptionType type) override
Definition: gasket_adapter.h:47
virtual ~GasketAdapter()
Definition: gasket_adapter.h:45
std::vector< std::string > description(GasketInterface::Ptr gasket_ptr)
Definition: gasket_adapter.h:88
std::shared_ptr< GasketInterface > Ptr
Definition: gasket_interface.h:35
Base class, responsible for handling a gasket.
Definition: gasket_owner.h:30
GasketInterface::Ptr gasket() const
Definition: gasket_owner.h:47
Container class for multiple GasketOwners, each given a unique ID.
Definition: multi_gasket_owner.h:38
std::set< int > keys() const
Definition: multi_gasket_owner.h:73
DescriptionType
Definition: description_interface.h:23
@ DESCRIPTION_TYPE_SIMICS2TLM
Definition: description_interface.h:24