gem5 v24.0.0.0
Loading...
Searching...
No Matches
tlm_utils::peq_with_cb_and_phase< OWNER, TYPES > Class Template Reference

An event queue that can contain any number of pending notifications. More...

#include <peq_with_cb_and_phase.h>

Inheritance diagram for tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >:
sc_core::sc_object

Classes

class  delta_list
 

Public Member Functions

 peq_with_cb_and_phase (OWNER *_owner, cb _cb)
 
 peq_with_cb_and_phase (const char *_name, OWNER *_owner, cb _cb)
 
 ~peq_with_cb_and_phase ()
 
void notify (tlm_payload_type &t, const tlm_phase_type &p, const sc_core::sc_time &when)
 
void notify (tlm_payload_type &t, const tlm_phase_type &p)
 
void cancel_all ()
 
- Public Member Functions inherited from sc_core::sc_object
const char * name () const
 
const char * basename () const
 
virtual const char * kind () const
 
virtual void print (std::ostream &=std::cout) const
 
virtual void dump (std::ostream &=std::cout) const
 
virtual const std::vector< sc_object * > & get_child_objects () const
 
virtual const std::vector< sc_event * > & get_child_events () const
 
sc_objectget_parent_object () const
 
bool add_attribute (sc_attr_base &)
 
sc_attr_baseget_attribute (const std::string &)
 
sc_attr_baseremove_attribute (const std::string &)
 
void remove_all_attributes ()
 
int num_attributes () const
 
sc_attr_cltnattr_cltn ()
 
const sc_attr_cltnattr_cltn () const
 
sc_simcontextsimcontext () const
 

Private Types

typedef TYPES::tlm_payload_type tlm_payload_type
 
typedef TYPES::tlm_phase_type tlm_phase_type
 
typedef std::pair< tlm_payload_type *, tlm_phase_typePAYLOAD
 
typedef void(OWNER::* cb) (tlm_payload_type &, const tlm_phase_type &)
 

Private Member Functions

void fec ()
 

Private Attributes

OWNER * m_owner
 
cb m_cb
 
time_ordered_list< PAYLOADm_ppq
 
delta_list m_uneven_delta
 
delta_list m_even_delta
 
delta_list m_immediate_yield
 
sc_core::sc_event m_e
 

Additional Inherited Members

- Protected Member Functions inherited from sc_core::sc_object
 sc_object ()
 
 sc_object (const char *)
 
 sc_object (const sc_object &)
 
sc_objectoperator= (const sc_object &)
 
virtual ~sc_object ()
 

Detailed Description

template<typename OWNER, typename TYPES = tlm::tlm_base_protocol_types>
class tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >

An event queue that can contain any number of pending notifications.

Each notification have an associate payload.

Definition at line 135 of file peq_with_cb_and_phase.h.

Member Typedef Documentation

◆ cb

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
typedef void(OWNER::* tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::cb) (tlm_payload_type &, const tlm_phase_type &)
private

Definition at line 140 of file peq_with_cb_and_phase.h.

◆ PAYLOAD

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
typedef std::pair<tlm_payload_type *, tlm_phase_type> tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::PAYLOAD
private

Definition at line 139 of file peq_with_cb_and_phase.h.

◆ tlm_payload_type

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
typedef TYPES::tlm_payload_type tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::tlm_payload_type
private

Definition at line 137 of file peq_with_cb_and_phase.h.

◆ tlm_phase_type

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
typedef TYPES::tlm_phase_type tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::tlm_phase_type
private

Definition at line 138 of file peq_with_cb_and_phase.h.

Constructor & Destructor Documentation

◆ peq_with_cb_and_phase() [1/2]

◆ peq_with_cb_and_phase() [2/2]

◆ ~peq_with_cb_and_phase()

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::~peq_with_cb_and_phase ( )
inline

Definition at line 202 of file peq_with_cb_and_phase.h.

Member Function Documentation

◆ cancel_all()

◆ fec()

◆ notify() [1/2]

◆ notify() [2/2]

Member Data Documentation

◆ m_cb

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
cb tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_cb
private

◆ m_e

◆ m_even_delta

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
delta_list tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_even_delta
private

◆ m_immediate_yield

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
delta_list tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_immediate_yield
private

◆ m_owner

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
OWNER* tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_owner
private

◆ m_ppq

◆ m_uneven_delta

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
delta_list tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_uneven_delta
private

The documentation for this class was generated from the following file:

Generated on Tue Jun 18 2024 16:24:56 for gem5 by doxygen 1.11.0