25 template <
typename MOD>
27 :
public tlm_utils::multi_passthrough_initiator_socket<MOD, BUSWIDTH>
29 using typename tlm_utils::multi_passthrough_initiator_socket<MOD, BUSWIDTH>::base_target_socket_type;
31 const std::function<
void(std::string)> register_cb;
35 : tlm_utils::multi_passthrough_initiator_socket<MOD, BUSWIDTH>::multi_passthrough_initiator_socket(name)
42 tlm_utils::multi_passthrough_initiator_socket<MOD, BUSWIDTH>::bind(socket);
43 register_cb(socket.get_base_export().name());
51 sc_dt::uint64 address;
57 std::string shortname;
60 void rename_last(std::string s)
66 std::vector<target_info> get_bound_targets() {
return bound_targets; }
68 virtual ~router_if() =
default;
71 std::string parent(std::string name) {
return name.substr(0, name.find_last_of(
'.')); }
74 std::string nameFromSocket(std::string s) {
return s; }
76 virtual void register_boundto(std::string s) = 0;
78 virtual target_info* decode_address(tlm::tlm_generic_payload&
trans) = 0;
80 virtual void lazy_initialize() = 0;
82 std::vector<target_info> bound_targets;