00001 #include "TraceControlPoints.decl.h" 00002 00003 extern CkGroupID traceControlPointsGID; 00004 00005 00006 // We typically declare parallel object classes here for the purposes of 00007 // performing parallel operations for the trace module after the main 00008 // application has completed execution (and calls CkExit()). 00009 // 00010 // TraceControlPointsInit is an initialization class. 00011 // 00012 // TraceControlPointsBOC is a one-per-processor object (defined in the .ci file as 00013 // a "group" instead of a "chare") which hosts the methods for the 00014 // parallel operations. In this case, there are no methods defined. 00015 // Otherwise, one may write any Charm++ code here. 00016 00017 class TraceControlPointsInit : public Chare { 00018 public: 00019 TraceControlPointsInit(CkArgMsg *m) { 00020 delete m; 00021 traceControlPointsGID = CProxy_TraceControlPointsBOC::ckNew(); 00022 CProxy_TraceControlPointsBOC controlPointsProxy(traceControlPointsGID); 00023 //CkPrintf("Initializing counters on pe %d\n", CkMyPe()); 00024 00025 } 00026 TraceControlPointsInit(CkMigrateMessage *m):Chare(m) {} 00027 }; 00028 00029 class TraceControlPointsBOC : public CBase_TraceControlPointsBOC { 00030 public: 00031 TraceControlPointsBOC(void) { 00032 }; 00033 00034 00035 void pup(PUP::er &p) 00036 { 00037 } 00038 00039 TraceControlPointsBOC(CkMigrateMessage *m) : CBase_TraceControlPointsBOC(m) {}; 00040 00041 }; 00042 00043