New API for sending arrays of data items.
[charm.git] / src / libs / ck-libs / NDMeshStreamer / DataItemTypes.h
index 73d77a21f0a5d9d10dc417d1d4da49e37dab6210..dc046cf40144f8cdece95286255bb6eb81212487 100644 (file)
@@ -1,13 +1,42 @@
 #ifndef DATA_ITEM_TYPES_H
 #define DATA_ITEM_TYPES_H
 
 #ifndef DATA_ITEM_TYPES_H
 #define DATA_ITEM_TYPES_H
 
+#define CHUNK_SIZE 256
+
 template<class dtype, class itype>
 template<class dtype, class itype>
-class ArrayDataItem{
- public:
+class ArrayDataItem {
+
+public:
   itype arrayIndex;
   dtype dataItem;
 
   ArrayDataItem(itype i, const dtype d) : arrayIndex(i), dataItem(d) {}
 };
 
   itype arrayIndex;
   dtype dataItem;
 
   ArrayDataItem(itype i, const dtype d) : arrayIndex(i), dataItem(d) {}
 };
 
+class ChunkDataItem {
+
+public:
+  short chunkSize;
+  int sourcePe; 
+  int chunkNumber; 
+  int numChunks;  
+  int numItems;
+  char rawData[CHUNK_SIZE];
+  
+  ChunkDataItem& operator=(const ChunkDataItem &rhs) {
+    
+    if (this != &rhs) {      
+      chunkSize = rhs.chunkSize; 
+      sourcePe = rhs.sourcePe;
+      chunkNumber = rhs.chunkNumber; 
+      numChunks = rhs.numChunks;
+      numItems = rhs.numItems;
+      memcpy(rawData, rhs.rawData, CHUNK_SIZE);
+    }
+
+    return *this;
+  }
+  
+};
+
 #endif
 #endif