00001 #include "conv-config.h"
00002
00003 #if CMI_QD
00004
00005 #ifndef _QUIESCENCE_H_
00006 #define _QUIESCENCE_H_
00007
00008 struct ConvQdMsg
00009 {
00010 char core[CmiMsgHeaderSizeBytes];
00011 int phase;
00012 union
00013 {
00014 struct { CmiInt8 created; CmiInt8 processed; } p1;
00015 struct { char dirty; } p2;
00016 } u;
00017 };
00018
00019
00020 struct ConvQdState
00021 {
00022 int stage;
00023 char cDirty;
00024 CmiInt8 oProcessed;
00025 CmiInt8 mCreated, mProcessed;
00026 CmiInt8 cCreated, cProcessed;
00027 int nReported;
00028 int nChildren;
00029 int parent;
00030 int *children;
00031 };
00032
00033
00034
00035 int CQdMsgGetPhase(CQdMsg);
00036 void CQdMsgSetPhase(CQdMsg, int);
00037 CmiInt8 CQdMsgGetCreated(CQdMsg);
00038 void CQdMsgSetCreated(CQdMsg, CmiInt8);
00039 CmiInt8 CQdMsgGetProcessed(CQdMsg);
00040 void CQdMsgSetProcessed(CQdMsg, CmiInt8);
00041 char CQdMsgGetDirty(CQdMsg);
00042 void CQdMsgSetDirty(CQdMsg, char);
00043
00044
00045 void CQdInit(void);
00046 CmiInt8 CQdGetCreated(CQdState);
00047 void CQdCreate(CQdState, CmiInt8);
00048 CmiInt8 CQdGetProcessed(CQdState);
00049 void CQdProcess(CQdState, CmiInt8);
00050 void CQdPropagate(CQdState, CQdMsg);
00051 int CQdGetParent(CQdState);
00052 CmiInt8 CQdGetCCreated(CQdState);
00053 CmiInt8 CQdGetCProcessed(CQdState);
00054 void CQdSubtreeCreate(CQdState, CmiInt8);
00055 void CQdSubtreeProcess(CQdState, CmiInt8);
00056 int CQdGetStage(CQdState);
00057 void CQdSetStage(CQdState, int);
00058 void CQdReported(CQdState);
00059 int CQdAllReported(CQdState);
00060 void CQdReset(CQdState);
00061 void CQdMarkProcessed(CQdState);
00062 char CQdIsDirty(CQdState);
00063 void CQdSubtreeSetDirty(CQdState, char);
00064
00065 CQdState CQdStateCreate(void);
00066 void CQdHandler(CQdMsg);
00067
00068 #endif
00069
00070 #endif