add function to return envelope size for the use of persistent message
authorYanhua Sun <sun51@illinois.edu>
Mon, 9 Sep 2013 21:42:20 +0000 (16:42 -0500)
committerYanhua Sun <sun51@illinois.edu>
Mon, 9 Sep 2013 21:42:20 +0000 (16:42 -0500)
src/ck-core/envelope.h

index d0a3d4e256fb5e145f8d3edf77885fdb4132d545..50a9df3fadeeafafb31a59c601c58b0cbc627364 100644 (file)
@@ -204,6 +204,28 @@ struct s_roMsg {     ///< ROMsgMsg for readonlys defined in ci files
         UInt roIdx;
 };
 
         UInt roIdx;
 };
 
+
+inline int getMaxExtrasize()
+{
+
+    int ret=0;
+    ret = sizeof(struct s_chare);
+    if(ret <  sizeof(struct s_groupinit))
+        ret = sizeof(struct s_groupinit);
+    if(ret < sizeof(struct s_group))
+        ret = sizeof(struct s_group);
+    if(ret < sizeof(struct s_arrayinit))
+        ret = sizeof(struct s_arrayinit);
+    if(ret < sizeof(struct s_array))
+        ret = sizeof(struct s_array);
+    if ( ret < sizeof(struct s_roData))
+        ret = sizeof(struct s_roData);
+    if(ret < sizeof(struct s_roMsg))
+        ret = sizeof(struct s_roMsg);
+    return ret;
+
+}
+
 inline UShort extraSize(CkEnvelopeType type)
 {
   int ret = 0;
 inline UShort extraSize(CkEnvelopeType type)
 {
   int ret = 0;
@@ -523,6 +545,11 @@ private:
 
 };
 
 
 };
 
+inline int getEnvelopesize()
+{
+  return sizeof(envelope)+ getMaxExtrasize();
+}
+
 
 inline envelope *UsrToEnv(const void *const msg) {
   return (((envelope *) msg)-1);
 
 inline envelope *UsrToEnv(const void *const msg) {
   return (((envelope *) msg)-1);