3b14a9450bb7d2a6ed227fb91516985a5df421fa
[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 remoteDoneInserting(void);
13         //Broadcast
14         entry void sendBroadcast(CkMessage *);
15         entry void recvBroadcast(CkMessage *);
16         entry void recvBroadcastViaTree(CkMessage *);
17         entry [expedited] void sendExpeditedBroadcast(CkMessage *);
18         entry [expedited] void recvExpeditedBroadcast(CkMessage *);
19   };
20
21   PUPable CkVerboseListener;
22   PUPable CkArrayBroadcaster;
23   PUPable CkArrayReducer;
24
25   // COMLIB HACK
26   //PUPable ComlibArrayListener;
27
28   initproc void _ckArrayInit(void);
29
30   array [none] ArrayElement {
31     entry ArrayElement();
32     //Calls destructor:
33     entry void ckDestroy(void);
34     entry void recvBroadcast(CkMessage *);
35     // CMK_MEM_CHECKPOINT
36     entry void inmem_checkpoint(CkArrayCheckPTReqMessage *);
37     // _PIPELINED_ALLREDUCE_
38     entry void defrag(CkReductionMsg*);
39
40   };
41
42
43 };