Charades
gvtmanager.h
1 #ifndef _GVTMANAGER_H
2 #define _GVTMANAGER_H
3 
4 #include "gvtmanager.decl.h"
5 
6 extern CProxy_GVTManager gvt_manager_proxy;
7 
8 class RemoteEvent;
10 
11 class Trigger;
12 typedef std::unique_ptr<Trigger> TriggerPtr;
13 
14 class GVTManager : public CBase_GVTManager {
15  protected:
17  Time curr_gvt, prev_gvt;
18 
19  bool active, continuous;
20 
23 
25  std::string gvt_name;
26 
27  TriggerPtr lb_trigger;
29  public:
30  GVTManager();
31 
32  // TODO: Initialize?
34  virtual void finalize() {}
35 
37  virtual void gvt_begin() { CkAbort("Cannot call GVTManager::begin()\n"); }
38 
40  Time current_gvt() const { return curr_gvt; }
41  Time previous_gvt() const { return prev_gvt; }
42 
43  bool is_active() const { return active; }
44  bool is_continuous() const { return continuous; }
45 
47  virtual void groups_created();
48 
50  virtual void consume(RemoteEvent* e) {}
51  virtual bool produce(RemoteEvent* e) { return true; }
52 };
53 
54 #endif
virtual void consume(RemoteEvent *e)
Methods for producing and consuming events for GVTs that need to know.
Definition: gvtmanager.h:50
TriggerPtr lb_trigger
Determines when to do LB.
Definition: gvtmanager.h:27
virtual void gvt_begin()
Every subclass needs to implement gvt_begin()
Definition: gvtmanager.h:37
Concrete base class for distributed schedulers.
Definition: scheduler.h:109
Time curr_gvt
Global virtual times.
Definition: gvtmanager.h:17
virtual void groups_created()
Called by the local PEManager after all groups have been initialized.
Definition: gvtmanager.C:30
std::string gvt_name
GVT name for output purposes.
Definition: gvtmanager.h:25
DistributedScheduler * scheduler
Local pointers to other PE-level objects.
Definition: gvtmanager.h:22
Time current_gvt() const
Accessors for gvts.
Definition: gvtmanager.h:40
Definition: event.h:15
Definition: gvtmanager.h:14
Definition: trigger.h:8
virtual void finalize()
Called by the local Scheduler instance after the simulation ends.
Definition: gvtmanager.h:34