ff171668c29db42db36c86615fc309813e559173
[charm.git] / src / xlat-i / sdag / CEntry.h
1 #ifndef _CEntry_H_
2 #define _CEntry_H_
3
4 #include "xi-util.h"
5 #include "sdag-globals.h"
6 #include "CList.h"
7
8 namespace xi {
9
10 class Entry;
11 class SdagConstruct;
12 class ParamList;
13 class CStateVar;
14
15 class CEntry{
16   public:
17     XStr *entry;
18     Entry *decl_entry;                  // point to the real Entry of the Chare
19     //CParseNode *paramlist;
20     ParamList *paramlist;
21     int entryNum;
22     int needsParamMarshalling;
23     int refNumNeeded;
24     TList<CStateVar*> *myParameters;
25     //TList<CParseNode*> whenList;
26     TList<SdagConstruct*> whenList;
27     CEntry(XStr *e, ParamList *p, TList<CStateVar*>& list, int pm) : entry(e), paramlist(p), needsParamMarshalling(pm) {
28        myParameters = new TList<CStateVar*>();
29        CStateVar *sv;
30        for(sv=list.begin(); !list.end(); sv=list.next()) {
31           myParameters->append(sv);
32        }
33        entryNum = numEntries++;
34        refNumNeeded =0;
35        decl_entry = NULL;
36     }
37
38     void print(int indent) {
39       Indent(indent);
40 //      printf("entry %s (%s *)", entry->charstar(), msgType->charstar());
41     } 
42
43     void generateCode(XStr& decls, XStr& defs);
44     void generateDeps(XStr& op);
45 };
46
47 }
48
49 #endif