00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __TLM_MASTER_SLAVE_IFS_H__
00019 #define __TLM_MASTER_SLAVE_IFS_H__
00020
00021 #include "tlm_h/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h"
00022
00023 namespace tlm {
00024
00025
00026
00027
00028
00029
00030
00031 template < typename REQ , typename RSP>
00032 class tlm_blocking_master_if :
00033 public virtual tlm_blocking_put_if< REQ > ,
00034 public virtual tlm_blocking_get_peek_if< RSP > {};
00035
00036 template < typename REQ , typename RSP>
00037 class tlm_blocking_slave_if :
00038 public virtual tlm_blocking_put_if< RSP > ,
00039 public virtual tlm_blocking_get_peek_if< REQ > {};
00040
00041
00042
00043 template < typename REQ , typename RSP >
00044 class tlm_nonblocking_master_if :
00045 public virtual tlm_nonblocking_put_if< REQ > ,
00046 public virtual tlm_nonblocking_get_peek_if< RSP > {};
00047
00048 template < typename REQ , typename RSP >
00049 class tlm_nonblocking_slave_if :
00050 public virtual tlm_nonblocking_put_if< RSP > ,
00051 public virtual tlm_nonblocking_get_peek_if< REQ > {};
00052
00053
00054
00055 template < typename REQ , typename RSP >
00056 class tlm_master_if :
00057 public virtual tlm_put_if< REQ > ,
00058 public virtual tlm_get_peek_if< RSP > ,
00059 public virtual tlm_blocking_master_if< REQ , RSP > ,
00060 public virtual tlm_nonblocking_master_if< REQ , RSP > {};
00061
00062 template < typename REQ , typename RSP >
00063 class tlm_slave_if :
00064 public virtual tlm_put_if< RSP > ,
00065 public virtual tlm_get_peek_if< REQ > ,
00066 public virtual tlm_blocking_slave_if< REQ , RSP > ,
00067 public virtual tlm_nonblocking_slave_if< REQ , RSP > {};
00068
00069 }
00070
00071 #endif