NDMeshStreamer: refactored MeshStreamer into an abstract class;
[charm.git] / src / libs / ck-libs / NDMeshStreamer / NDMeshStreamer.ci
1 module NDMeshStreamer {
2
3   template<class dtype> 
4   message MeshStreamerMessage {
5     int destinationPes[];
6     dtype data[]; 
7   };
8
9   template<class dtype> group MeshStreamerClient {
10     entry void receiveCombinedData(MeshStreamerMessage<dtype> *msg);
11   };
12
13   template<class dtype> 
14   group MeshStreamer {
15     entry void receiveAlongRoute(MeshStreamerMessage<dtype> *msg);
16     entry void flushDirect();
17     entry void finish(CkReductionMsg *msg);
18   };
19
20   template<class dtype>
21   group GroupMeshStreamer : MeshStreamer<dtype> {
22     entry GroupMeshStreamer(int totalBufferCapacity, int numDimensions, 
23                             int dimensionSizes[numDimensions], 
24                             const CProxy_MeshStreamerClient<dtype> &clientProxy,
25                             int yieldFlag = 0, 
26                             double progressPeriodInMs = -1.0);
27   };
28 };
29