24 25namespace tlm 26{ 27 28// 29// req/rsp combined interfaces 30// 31 32// Blocking. 33template <typename REQ, typename RSP> 34class tlm_blocking_master_if : 35 public virtual tlm_blocking_put_if<REQ>, 36 public virtual tlm_blocking_get_peek_if<RSP> 37{}; 38 39template <typename REQ, typename RSP> 40class tlm_blocking_slave_if : 41 public virtual tlm_blocking_put_if<RSP>, 42 public virtual tlm_blocking_get_peek_if<REQ> 43{}; 44 45// Nonblocking. 46template <typename REQ, typename RSP> 47class tlm_nonblocking_master_if : 48 public virtual tlm_nonblocking_put_if<REQ>, 49 public virtual tlm_nonblocking_get_peek_if<RSP> 50{}; 51 52template <typename REQ, typename RSP> 53class tlm_nonblocking_slave_if : 54 public virtual tlm_nonblocking_put_if<RSP>, 55 public virtual tlm_nonblocking_get_peek_if<REQ> 56{}; 57 58// Combined. 59template <typename REQ, typename RSP> 60class tlm_master_if : public virtual tlm_put_if<REQ>, 61 public virtual tlm_get_peek_if<RSP> , 62 public virtual tlm_blocking_master_if<REQ, RSP>, 63 public virtual tlm_nonblocking_master_if<REQ, RSP> 64{}; 65 66template <typename REQ, typename RSP> 67class tlm_slave_if : public virtual tlm_put_if<RSP>, 68 public virtual tlm_get_peek_if<REQ>, 69 public virtual tlm_blocking_slave_if<REQ, RSP>, 70 public virtual tlm_nonblocking_slave_if<REQ, RSP> 71{}; 72 73} // namespace tlm 74 75#endif /* __TLM_CORE_1_REQ_RSP_INTERFACES_MASTER_SLAVE_IFS_HH__ */
|