scc 2025.09
SystemC components library
scc::fifo_w_cb< T > Class Template Reference

fifo with callbacks More...

#include <fifo_w_cb.h>

Inheritance diagram for scc::fifo_w_cb< T >:
Collaboration diagram for scc::fifo_w_cb< T >:

Public Member Functions

 fifo_w_cb (const char *name)
void push_back (T &t)
void push_back (const T &t)
void push_back (T &&t)
T & back ()
const T & back () const
void pop_front ()
T & front ()
const T & front () const
read ()
size_t avail () const
bool empty () const
void set_avail_cb (std::function< void(void)> f)
void set_empty_cb (std::function< void(void)> f)
sc_core::sc_event const & data_written_event () const
unsigned num_avail ()
unsigned num_written ()

Protected Member Functions

virtual void update ()

Protected Attributes

std::deque< T > in_queue {}
std::deque< T > out_queue {}
std::function< void(void)> avail_cb {}
std::function< void(void)> empty_cb {}
unsigned available = 0
unsigned written = 0
sc_core::sc_event data_written_evt {}

Detailed Description

template<typename T>
class scc::fifo_w_cb< T >

fifo with callbacks

A fifo with callbacks upon running empty or being filled. The registered callbacks are triggered if the fifo is empty or if an element is inserted. This can be used to control the sensitivity of processes reading this fifo.

Template Parameters
Tthe type name of the elements to be store in the fifo

Definition at line 38 of file fifo_w_cb.h.

Constructor & Destructor Documentation

◆ fifo_w_cb() [1/2]

template<typename T>
scc::fifo_w_cb< T >::fifo_w_cb ( )
inline

Definition at line 40 of file fifo_w_cb.h.

◆ fifo_w_cb() [2/2]

template<typename T>
scc::fifo_w_cb< T >::fifo_w_cb ( const char * name)
inline

Definition at line 43 of file fifo_w_cb.h.

◆ ~fifo_w_cb()

template<typename T>
virtual scc::fifo_w_cb< T >::~fifo_w_cb ( )
inlinevirtual

Definition at line 46 of file fifo_w_cb.h.

Member Function Documentation

◆ avail()

template<typename T>
size_t scc::fifo_w_cb< T >::avail ( ) const
inline

Definition at line 82 of file fifo_w_cb.h.

◆ back() [1/2]

template<typename T>
T & scc::fifo_w_cb< T >::back ( )
inline

Definition at line 62 of file fifo_w_cb.h.

◆ back() [2/2]

template<typename T>
const T & scc::fifo_w_cb< T >::back ( ) const
inline

Definition at line 63 of file fifo_w_cb.h.

◆ data_written_event()

template<typename T>
sc_core::sc_event const & scc::fifo_w_cb< T >::data_written_event ( ) const
inline

Definition at line 88 of file fifo_w_cb.h.

◆ empty()

template<typename T>
bool scc::fifo_w_cb< T >::empty ( ) const
inline

Definition at line 83 of file fifo_w_cb.h.

◆ front() [1/2]

template<typename T>
T & scc::fifo_w_cb< T >::front ( )
inline

Definition at line 72 of file fifo_w_cb.h.

◆ front() [2/2]

template<typename T>
const T & scc::fifo_w_cb< T >::front ( ) const
inline

Definition at line 73 of file fifo_w_cb.h.

◆ num_avail()

template<typename T>
unsigned scc::fifo_w_cb< T >::num_avail ( )
inline

Definition at line 90 of file fifo_w_cb.h.

◆ num_written()

template<typename T>
unsigned scc::fifo_w_cb< T >::num_written ( )
inline

Definition at line 91 of file fifo_w_cb.h.

◆ pop_front()

template<typename T>
void scc::fifo_w_cb< T >::pop_front ( )
inline

Definition at line 65 of file fifo_w_cb.h.

◆ push_back() [1/3]

template<typename T>
void scc::fifo_w_cb< T >::push_back ( const T & t)
inline

Definition at line 52 of file fifo_w_cb.h.

◆ push_back() [2/3]

template<typename T>
void scc::fifo_w_cb< T >::push_back ( T && t)
inline

Definition at line 57 of file fifo_w_cb.h.

◆ push_back() [3/3]

template<typename T>
void scc::fifo_w_cb< T >::push_back ( T & t)
inline

Definition at line 48 of file fifo_w_cb.h.

◆ read()

template<typename T>
T scc::fifo_w_cb< T >::read ( )
inline

Definition at line 75 of file fifo_w_cb.h.

◆ set_avail_cb()

template<typename T>
void scc::fifo_w_cb< T >::set_avail_cb ( std::function< void(void)> f)
inline

Definition at line 85 of file fifo_w_cb.h.

◆ set_empty_cb()

template<typename T>
void scc::fifo_w_cb< T >::set_empty_cb ( std::function< void(void)> f)
inline

Definition at line 86 of file fifo_w_cb.h.

◆ update()

template<typename T>
virtual void scc::fifo_w_cb< T >::update ( )
inlineprotectedvirtual

Definition at line 95 of file fifo_w_cb.h.

Member Data Documentation

◆ avail_cb

template<typename T>
std::function<void(void)> scc::fifo_w_cb< T >::avail_cb {}
protected

Definition at line 111 of file fifo_w_cb.h.

◆ available

template<typename T>
unsigned scc::fifo_w_cb< T >::available = 0
protected

Definition at line 113 of file fifo_w_cb.h.

◆ data_written_evt

template<typename T>
sc_core::sc_event scc::fifo_w_cb< T >::data_written_evt {}
protected

Definition at line 115 of file fifo_w_cb.h.

◆ empty_cb

template<typename T>
std::function<void(void)> scc::fifo_w_cb< T >::empty_cb {}
protected

Definition at line 112 of file fifo_w_cb.h.

◆ in_queue

template<typename T>
std::deque<T> scc::fifo_w_cb< T >::in_queue {}
protected

Definition at line 109 of file fifo_w_cb.h.

◆ out_queue

template<typename T>
std::deque<T> scc::fifo_w_cb< T >::out_queue {}
protected

Definition at line 110 of file fifo_w_cb.h.

◆ written

template<typename T>
unsigned scc::fifo_w_cb< T >::written = 0
protected

Definition at line 114 of file fifo_w_cb.h.


The documentation for this class was generated from the following file:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/sysc/scc/fifo_w_cb.h