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;