gem5  v20.1.0.0
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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 152 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 157 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 156 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 154 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 155 of file peq_with_cb_and_phase.h.

Constructor & Destructor Documentation

◆ peq_with_cb_and_phase() [1/2]

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::peq_with_cb_and_phase ( OWNER *  _owner,
cb  _cb 
)
inline

Definition at line 195 of file peq_with_cb_and_phase.h.

◆ peq_with_cb_and_phase() [2/2]

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::peq_with_cb_and_phase ( const char *  _name,
OWNER *  _owner,
cb  _cb 
)
inline

Definition at line 208 of file peq_with_cb_and_phase.h.

◆ ~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 219 of file peq_with_cb_and_phase.h.

Member Function Documentation

◆ cancel_all()

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

Definition at line 250 of file peq_with_cb_and_phase.h.

◆ fec()

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
void tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::fec ( )
inlineprivate

Definition at line 261 of file peq_with_cb_and_phase.h.

◆ notify() [1/2]

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
void tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::notify ( tlm_payload_type t,
const tlm_phase_type p 
)
inline

Definition at line 242 of file peq_with_cb_and_phase.h.

◆ notify() [2/2]

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
void tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::notify ( tlm_payload_type t,
const tlm_phase_type p,
const sc_core::sc_time when 
)
inline

Definition at line 222 of file peq_with_cb_and_phase.h.

Referenced by MultiSocketSimpleSwitchAT::free().

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

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
sc_core::sc_event tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_e
private

◆ 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

template<typename OWNER , typename TYPES = tlm::tlm_base_protocol_types>
time_ordered_list<PAYLOAD> tlm_utils::peq_with_cb_and_phase< OWNER, TYPES >::m_ppq
private

Definition at line 311 of file peq_with_cb_and_phase.h.

◆ 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 Wed Sep 30 2020 14:03:14 for gem5 by doxygen 1.8.17