Chare Arrays: Add interface to signal online dynamic element insertion
[charm.git] / src / ck-core / ckarray.ci
1 module CkArray {
2   extern module CkReduction;
3   extern module CkLocation;
4   extern module CkArrayReductionMgr;
5
6   readonly CmiBool _isAnytimeMigration;
7   
8   group [migratable] CkArray : CkReductionMgr {
9         entry CkArray(CkArrayOptions opts, CkMarshalledMessage ctorMsg, CkNodeGroupID nodereductionProxy);
10         //Insertion
11         entry void insertElement(CkMessage *);
12         entry void remoteBeginInserting(void);
13         entry void remoteDoneInserting(void);
14         //Broadcast
15         entry void sendBroadcast(CkMessage *);
16         entry void recvBroadcast(CkMessage *);
17         entry void recvBroadcastViaTree(CkMessage *);
18         entry [expedited] void sendExpeditedBroadcast(CkMessage *);
19         entry [expedited] void recvExpeditedBroadcast(CkMessage *);
20   };
21
22   PUPable CkVerboseListener;
23   PUPable CkArrayBroadcaster;
24   PUPable CkArrayReducer;
25
26   // COMLIB HACK
27   //PUPable ComlibArrayListener;
28
29   initproc void _ckArrayInit(void);
30
31   array [none] ArrayElement {
32     entry ArrayElement();
33     //Calls destructor:
34     entry void ckDestroy(void);
35     entry void recvBroadcast(CkMessage *);
36     // CMK_MEM_CHECKPOINT
37     entry void inmem_checkpoint(CkArrayCheckPTReqMessage *);
38     // _PIPELINED_ALLREDUCE_
39     entry void defrag(CkReductionMsg*);
40
41   };
42
43
44 };