20#ifndef __SYSTEMC_EXT_TLM_UTILS_PEQ_WITH_CB_AND_PHASE_H__
21#define __SYSTEMC_EXT_TLM_UTILS_PEQ_WITH_CB_AND_PHASE_H__
35template <
typename PAYLOAD>
95 while (iterator !=
nill && iterator->
t <= t) {
97 iterator = iterator->
next;
99 if (ancestor ==
nill) {
134template<
typename OWNER,
typename TYPES=tlm::tlm_base_protocol_types>
180 "peq_with_cb_and_phase")),
272 if (!
m_ppq.get_size())
279 while (
m_ppq.get_size() &&
top == now) {
286 if (
m_ppq.get_size()) {
void set_sensitivity(const sc_event *)
std::vector< PAYLOAD > entries
void insert(const PAYLOAD &p)
An event queue that can contain any number of pending notifications.
peq_with_cb_and_phase(OWNER *_owner, cb _cb)
TYPES::tlm_phase_type tlm_phase_type
std::pair< tlm_payload_type *, tlm_phase_type > PAYLOAD
peq_with_cb_and_phase(const char *_name, OWNER *_owner, cb _cb)
time_ordered_list< PAYLOAD > m_ppq
delta_list m_immediate_yield
delta_list m_uneven_delta
TYPES::tlm_payload_type tlm_payload_type
void(OWNER::* cb)(tlm_payload_type &, const tlm_phase_type &)
void notify(tlm_payload_type &t, const tlm_phase_type &p)
void notify(tlm_payload_type &t, const tlm_phase_type &p, const sc_core::sc_time &when)
sc_core::sc_time top_time()
void insert(const PAYLOAD &p, sc_core::sc_time t)
sc_dt::uint64 & top_delta()
sc_core::sc_time next_time()
sc_dt::uint64 sc_delta_count()
const sc_time SC_ZERO_TIME
sc_process_handle sc_spawn(T object, const char *name_p=nullptr, const sc_spawn_options *opt_p=nullptr)
const char * sc_gen_unique_name(const char *seed)
const sc_time & sc_time_stamp()
element(PAYLOAD &p, sc_core::sc_time t, sc_dt::uint64 d)