29#ifndef SC_PRIM_CHANNEL_H
30#define SC_PRIM_CHANNEL_H
51 virtual const char*
kind()
const
52 {
return "sc_prim_channel"; }
55 {
return m_update_next_p != NULL; }
58 inline void request_update();
62 void async_request_update();
91 void async_attach_suspending();
92 void async_detach_suspending();
171 sc_time( v, tu, simcontext() ), e, simcontext() ); }
178 sc_time( v, tu, simcontext() ), el, simcontext() ); }
185 sc_time( v, tu, simcontext() ), el, simcontext() ); }
197 void perform_update();
200 void construction_done();
203 void elaboration_done();
206 void start_simulation();
209 void simulation_done();
240 {
return static_cast<int>(m_prim_channel_vec.size()); }
275 void perform_update();
278 bool construction_done();
281 void elaboration_done();
284 void start_simulation();
287 void simulation_done();
295 class async_update_list;
297 async_update_list* m_async_update_list_p;
298 int m_construction_done;
299 std::vector<sc_prim_channel*> m_prim_channel_vec;
319 prim_channel_.m_update_next_p = m_update_list_p;
320 m_update_list_p = &prim_channel_;
335 if( ! m_update_next_p ) {
369sc_prim_channel::perform_update()
SC_API bool timed_out(sc_simcontext *)
SC_API void wait(int, sc_simcontext *)
SC_API void next_trigger(sc_simcontext *)
void wait(const sc_event_or_list &el)
void next_trigger(const sc_time &t, const sc_event &e)
void next_trigger(double v, sc_time_unit tu)
virtual void before_end_of_elaboration()
void wait(const sc_time &t)
void next_trigger(const sc_time &t, const sc_event_and_list &el)
virtual const char * kind() const
void next_trigger(double v, sc_time_unit tu, const sc_event_and_list &el)
void next_trigger(double v, sc_time_unit tu, const sc_event &e)
void next_trigger(const sc_event_and_list &el)
void wait(double v, sc_time_unit tu, const sc_event_and_list &el)
void wait(double v, sc_time_unit tu, const sc_event_or_list &el)
void wait(const sc_time &t, const sc_event_and_list &el)
void next_trigger(const sc_event &e)
void wait(double v, sc_time_unit tu, const sc_event &e)
void wait(double v, sc_time_unit tu)
void next_trigger(const sc_time &t)
void wait(const sc_time &t, const sc_event &e)
void wait(const sc_event_and_list &el)
void wait(const sc_event &e)
sc_prim_channel(const char *)
virtual void end_of_elaboration()
void async_request_update()
void async_detach_suspending()
virtual void start_of_simulation()
void wait(const sc_time &t, const sc_event_or_list &el)
void async_attach_suspending()
virtual void end_of_simulation()
void next_trigger(const sc_event_or_list &el)
void next_trigger(double v, sc_time_unit tu, const sc_event_or_list &el)
void next_trigger(const sc_time &t, const sc_event_or_list &el)
virtual ~sc_prim_channel()
bool pending_async_updates() const
void request_update(sc_prim_channel &)
void async_request_update(sc_prim_channel &)
void async_detach_suspending(sc_prim_channel &)
void async_attach_suspending(sc_prim_channel &)
bool pending_updates() const
void remove(sc_prim_channel &)
void insert(sc_prim_channel &)