6cc789bbce13e800fa774646eb410635ad510f9d
[charm.git] / src / libs / ck-libs / NDMeshStreamer / NDMeshStreamer.ci
1 module NDMeshStreamer {
2   extern module completion;
3
4   include "DataItemTypes.h";
5
6   template<class dtype> 
7   message MeshStreamerMessage {
8     int destinationPes[];
9     dtype data[]; 
10   };
11
12   template<class dtype> group MeshStreamerGroupClient {
13     entry void receiveCombinedData(MeshStreamerMessage<dtype> *msg);
14   };
15
16   template<class dtype> array [1D] MeshStreamerArrayClient {
17     // entry void receiveCombinedData(MeshStreamerMessage<dtype> *msg);
18     entry void receiveRedeliveredItem(dtype data);
19   };
20
21   template<class dtype> 
22   group MeshStreamer {
23     entry void receiveAlongRoute(MeshStreamerMessage<dtype> *msg);
24     entry void flushDirect();
25     entry void finish();
26     entry void associateCallback(int numContributors, 
27                                  CkCallback startCb, CkCallback endCb, 
28                                  CProxy_CompletionDetector detector);
29   };
30
31   template<class dtype>
32   group GroupMeshStreamer : MeshStreamer<dtype> {
33     entry GroupMeshStreamer(
34           int totalBufferCapacity, int numDimensions, 
35           int dimensionSizes[numDimensions], 
36           const CProxy_MeshStreamerGroupClient<dtype> &clientProxy,
37           bool yieldFlag = 0, double progressPeriodInMs = -1.0);
38   };
39
40
41   template<class dtype>
42     group ArrayMeshStreamer : MeshStreamer<ArrayDataItem<dtype> > {
43     entry ArrayMeshStreamer(
44           int totalBufferCapacity, int numDimensions, 
45           int dimensionSizes[numDimensions],
46           const CProxy_MeshStreamerArrayClient<dtype> &clientProxy,
47           bool yieldFlag = 0, double progressPeriodInMs = -1.0);
48
49     entry void receiveArrayData(
50                MeshStreamerMessage<ArrayDataItem<dtype> > *msg); 
51   };
52
53 };
54