Merge branch 'charm' of charmgit:charm into charm
[charm.git] / examples / charm++ / PUP / SimplePUP.h
1 ///////////////////////////////////////
2 //
3 //  SimplePUP.h  
4 //
5 //  Declaration of chares in SimplePUP
6 //
7 //  Author: Eric Bohm
8 //  Date: 2012/01/23
9 //
10 ///////////////////////////////////////
11
12 #include "SimplePUP.decl.h"
13
14 class main : public CBase_main {
15
16 public:
17
18   main(CkMigrateMessage *m) {}
19
20   main(CkArgMsg *m);
21
22 };
23
24
25 class SimpleArray : public CBase_SimpleArray {
26
27  public:
28   
29   SimpleArray(CkMigrateMessage *m) {}
30
31   SimpleArray(){}
32
33   void done(){
34     CkPrintf("done int %d\n",localCopy.publicInt);
35     CkExit();
36   }
37
38   ~SimpleArray(){}
39
40   void acceptData(SimpleObject &inData){
41
42     //do something to the object
43     localCopy=inData;
44     localCopy.doWork();
45
46     if(thisIndex==0) //no one lower to pass to
47       {
48         done();
49       }
50     else
51       { // pass object down one index
52         thisProxy[thisIndex-1].acceptData(localCopy);
53       }
54   }
55
56  private:
57
58   SimpleObject localCopy;
59
60 };
61