fixing log problem, and little modification to the interface to allow
[charm.git] / src / conv-com / convcomlibstrategy.C
index 7545515a8394c3f9b817725adb241d37a418ca68..ed97437579a71996eecf3f6c45c45834c72bb6f7 100644 (file)
@@ -13,7 +13,9 @@ Strategy::Strategy() : PUP::able() {
     myInstanceID = 0;
     type = CONVERSE_STRATEGY;
     converseStrategy = this;
+    higherLevel = this;
     isStrategyBracketed = 0;
+    destinationHandler = 0;
 };
 
 //Each strategy must define his own Pup interface.
@@ -23,35 +25,18 @@ void Strategy::pup(PUP::er &p){
 
     p | isStrategyBracketed;
     p | type;
-}
+    p | destinationHandler;
 
+    if (p.isUnpacking()) {
+      converseStrategy = this;
+      higherLevel = this;
+    }
+}
 
 //Message holder functions. Message holder is a wrapper around a
 //message. Has other useful data like destination processor list for a
 //multicast etc.
 
-MessageHolder::MessageHolder(char * msg, int proc, int sz) : PUP::able() {
-    data = msg;
-    dest_proc = proc;
-    size = sz;
-    
-    isDummy = 0;
-
-    npes = 0;
-    pelist = 0;
-}
-
-MessageHolder::~MessageHolder() {
-    /*
-      if(pelist != NULL && npes > 0)
-      delete[] pelist;
-    */
-}
-
-char * MessageHolder::getMessage(){
-    return data;
-}
-
 void MessageHolder::pup(PUP::er &p) {
     //PUP::able::pup(p);