SST/macro
clock_cycle_event_container.h
Go to the documentation of this file.
1 #ifndef CLOCK_CYCLE_EVENT_CONTAINER_H
2 #define CLOCK_CYCLE_EVENT_CONTAINER_H
3 
5 #if !SSTMAC_INTEGRATED_SST_CORE
6 
10 
11 DeclareDebugSlot(event_manager_time_vote);
12 
13 namespace sstmac {
14 namespace native {
15 
17  public event_map
18 {
19  public:
21  event_map(rt){}
22 
23  typedef enum {
26  } vote_type_t;
27 
28  virtual ~clock_cycle_event_map() throw() {}
29 
30  virtual void
31  init_factory_params(sprockit::sim_parameters* params);
32 
33  virtual void
34  finalize_init();
35 
36  virtual void
37  run();
38 
39  bool
41 
42  virtual void
43  set_interconnect(hw::interconnect* interconn);
44 
45  virtual void
47  event_loc_id dst,
48  event_loc_id src,
49  uint32_t seqnum,
50  event* ev);
51 
52  protected:
54 
55  virtual void
56  schedule_incoming(const std::vector<void*>& mpi_buffers);
57 
58  void
59  do_next_event();
60 
61  timestamp
62  next_event_time() const;
63 
64  virtual timestamp
65  vote_next_round(timestamp my_time, vote_type_t ty);
66 
67  int64_t
68  do_vote(int64_t time, vote_type_t ty = vote_min);
69 
70  virtual void
72 
73  protected:
77  std::vector<void*> all_incoming_;
78  std::vector<std::vector<void*> > thread_incoming_;
80  int epoch_;
81 
82 #if SSTMAC_DEBUG_THREAD_EVENTS
83  void open_debug_file();
84 
85  void close_debug_file();
86 
87  std::ofstream event_file_;
88 #endif
89 
90 };
91 
92 }
93 }
94 
95 #endif // !SSTMAC_INTEGRATED_SST_CORE
96 
97 #endif // CLOCK_CYCLE_EVENT_CONTAINER_H
virtual timestamp vote_next_round(timestamp my_time, vote_type_t ty)
virtual void init_factory_params(sprockit::sim_parameters *params)
virtual void set_interconnect(hw::interconnect *interconn)
An event manager that relies on the eventcontainer template base class to manage events with a multim...
Definition: event_map.h:31
virtual void schedule_incoming(const std::vector< void * > &mpi_buffers)
A basic container for time (subject to future transplant).
Definition: timestamp.h:29
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
virtual void ipc_schedule(timestamp t, event_loc_id dst, event_loc_id src, uint32_t seqnum, event *ev)
virtual void run()
Run the eventmanager.
std::vector< std::vector< void * > > thread_incoming_
DeclareDebugSlot(event_manager_time_vote)
int64_t do_vote(int64_t time, vote_type_t ty=vote_min)