New API for sending arrays of data items.
[charm.git] / src / libs / ck-libs / NDMeshStreamer / DataItemTypes.h
1 #ifndef DATA_ITEM_TYPES_H
2 #define DATA_ITEM_TYPES_H
3
4 #define CHUNK_SIZE 256
5
6 template<class dtype, class itype>
7 class ArrayDataItem {
8
9 public:
10   itype arrayIndex;
11   dtype dataItem;
12
13   ArrayDataItem(itype i, const dtype d) : arrayIndex(i), dataItem(d) {}
14 };
15
16 class ChunkDataItem {
17
18 public:
19   short chunkSize;
20   int sourcePe; 
21   int chunkNumber; 
22   int numChunks;  
23   int numItems;
24   char rawData[CHUNK_SIZE];
25   
26   ChunkDataItem& operator=(const ChunkDataItem &rhs) {
27     
28     if (this != &rhs) {      
29       chunkSize = rhs.chunkSize; 
30       sourcePe = rhs.sourcePe;
31       chunkNumber = rhs.chunkNumber; 
32       numChunks = rhs.numChunks;
33       numItems = rhs.numItems;
34       memcpy(rawData, rhs.rawData, CHUNK_SIZE);
35     }
36
37     return *this;
38   }
39   
40 };
41
42 #endif