#include "charm++.h"

#include "testcharm.h"
#include "main.h"

Testcharm::Testcharm(Msg *msg)
{
  CkPrintf("Charm++ test started\n");
  msg->data = 0;
  CProxy_Testcharm ptc(thishandle);
  ptc.test1(msg);
}

void Testcharm::test1(Msg *msg) {
  if(msg->data == NMSGS) {
    msg->data=1;
    CProxy_main ptm(mainhandle);
    ptm.testend(msg);
  } else {
    msg->data++;
    CProxy_Testcharm ptc(thishandle);
    ptc.test2(msg);
  }
}

void Testcharm::test2(Msg *msg) {
  CProxy_Testcharm ptc(thishandle);
  ptc.test1(msg);
}


#include "charm.def.h"
