00001 #include "CStateVar.h"
00002 #include "xi-Parameter.h"
00003
00004 namespace xi {
00005
00006 CStateVar::CStateVar(int v, const char* t, int np, const char* n, XStr* r, const char* a,
00007 int m)
00008 : isVoid(v),
00009 numPtrs(np),
00010 byRef(r),
00011 isMsg(m),
00012 isRdma(false),
00013 isFirstRdma(false),
00014 isRecvRdma(false),
00015 declaredRef(NULL),
00016 byConst(false),
00017 isCounter(false),
00018 isSpeculator(false),
00019 isBgParentLog(false) {
00020 if (t != NULL) {
00021 type = new XStr(t);
00022 } else {
00023 type = NULL;
00024 }
00025 if (n != NULL) {
00026 name = new XStr(n);
00027 } else {
00028 name = NULL;
00029 }
00030 if (a != NULL) {
00031 arrayLength = new XStr(a);
00032 } else {
00033 arrayLength = NULL;
00034 }
00035 }
00036
00037 CStateVar::CStateVar(ParamList* pl)
00038 : isVoid(0),
00039 type(new XStr(pl->param->type->isMessage() ? *(pl->param->type->deref())
00040 : *(pl->param->getType()))),
00041 numPtrs(0),
00042 name(new XStr(pl->getGivenName() ? pl->getGivenName() : "noGivenName")),
00043 byRef(pl->isReference() ? new XStr("&") : NULL),
00044 declaredRef(pl->declaredReference() ? new XStr("&") : NULL),
00045 byConst(pl->isConst()),
00046 arrayLength(pl->isArray() ? new XStr(pl->getArrayLen()) : NULL),
00047 isMsg(pl->isMessage()),
00048 isRdma(pl->isRdma()),
00049 isFirstRdma(pl->isFirstRdma()),
00050 isRecvRdma(pl->isRecvRdma()),
00051 isCounter(false),
00052 isSpeculator(false),
00053 isBgParentLog(false) {}
00054
00055 EncapState::EncapState(Entry* entry, std::list<CStateVar*>& vars)
00056 : entry(entry),
00057 type(0),
00058 name(0),
00059 isMessage(false),
00060 isForall(false),
00061 isBgParentLog(false),
00062 vars(vars) {}
00063
00064 }