20 #ifndef __TLM_FIFO_H__ 21 #define __TLM_FIFO_H__ 61 explicit tlm_fifo(
const char* name_,
int size_ = 1 )
84 T
peek( tlm_tag<T> * = 0 )
const;
113 bool nb_peek( T & ,
int n )
const;
114 bool nb_poke(
const T & ,
int n = 0 );
126 if( is_empty() ) std::cout <<
"empty" << std::endl;
127 if( is_full() ) std::cout <<
"full" << std::endl;
129 std::cout <<
"size " <<
size() <<
" - " <<
used() <<
" used " 185 bool is_empty()
const {
189 bool is_full()
const {
199 template <
typename T>
209 template<
typename T >
218 else if( size_ < 0 ) {
231 m_num_read_no_notify =
false;
235 template <
typename T>
240 if( m_num_read > m_num_read_no_notify || m_expand ) {
244 if( m_num_written > 0 ) {
251 m_num_readable = buffer.
used();
252 m_num_read_no_notify = 0;
const sc_core::sc_event & ok_to_peek(tlm_tag< T > *=0) const
SC_API const sc_time SC_ZERO_TIME
const char * kind() const
bool nb_reduce(unsigned int n=1)
bool nb_bound(unsigned int n)
const sc_core::sc_event & ok_to_get(tlm_tag< T > *=0) const
bool nb_can_get(tlm_tag< T > *=0) const
bool nb_poke(const T &, int n=0)
circular_buffer< T > buffer
sc_core::sc_event m_data_read_event
bool nb_can_put(tlm_tag< T > *=0) const
tlm_fifo(const char *name_, int size_=1)
const sc_core::sc_event & ok_to_put(tlm_tag< T > *=0) const
void nb_unbound(unsigned int n=16)
static const char *const kind_string
void nb_expand(unsigned int n=1)
sc_core::sc_event & read_event(tlm_tag< T > *=0)
SC_API const char * sc_gen_unique_name(const char *, bool preserve_first)
bool nb_can_peek(tlm_tag< T > *=0) const
T peek(tlm_tag< T > *=0) const
sc_core::sc_event m_data_written_event