Added nice header using CVS keywords for *.[cCh] files.
[charm.git] / src / conv-core / quiescence.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7
8 #ifndef _QUIESCENCE_H_
9 #define _QUIESCENCE_H_
10
11 struct ConvQdMsg 
12 {  
13         char core[CmiMsgHeaderSizeBytes];
14         int phase; /* 0..2*/
15         union 
16         {
17                 struct { int created; int processed; } p1;
18                 struct { int dirty; } p2;
19         } u;
20 };
21
22
23 struct ConvQdState 
24 {
25     int stage; /* 0..2*/
26     int oProcessed;
27     int mCreated, mProcessed;
28     int cCreated, cProcessed;
29     int cDirty;
30     int nReported;
31     int nChildren;
32     int parent;
33     int *children;
34 };
35
36
37 /* Declarations for CQdMsg related operations */
38 int  CQdMsgGetPhase(CQdMsg); 
39 void CQdMsgSetPhase(CQdMsg, int); 
40 int  CQdMsgGetCreated(CQdMsg); 
41 void CQdMsgSetCreated(CQdMsg, int); 
42 int  CQdMsgGetProcessed(CQdMsg); 
43 void CQdMsgSetProcessed(CQdMsg, int); 
44 int  CQdMsgGetDirty(CQdMsg); 
45 void CQdMsgSetDirty(CQdMsg, int); 
46
47 /* Declarations for CQdState related operations */
48 void CQdInit(void);
49 int  CQdGetCreated(CQdState);
50 void CQdCreate(CQdState, int);
51 int  CQdGetProcessed(CQdState);
52 void CQdProcess(CQdState, int);
53 void CQdPropagate(CQdState, CQdMsg); 
54 int  CQdGetParent(CQdState); 
55 int  CQdGetCCreated(CQdState); 
56 int  CQdGetCProcessed(CQdState); 
57 void CQdSubtreeCreate(CQdState, int); 
58 void CQdSubtreeProcess(CQdState, int); 
59 int  CQdGetStage(CQdState); 
60 void CQdSetStage(CQdState, int); 
61 void CQdReported(CQdState); 
62 int  CQdAllReported(CQdState); 
63 void CQdReset(CQdState); 
64 void CQdMarkProcessed(CQdState); 
65 int  CQdIsDirty(CQdState); 
66 void CQdSubtreeSetDirty(CQdState, int); 
67
68 CQdState CQdStateCreate(void);
69 void CQdHandler(CQdMsg);
70
71 #endif