Merge branch 'charm' of charmgit:charm into harshitha/adaptive_lb
[charm.git] / src / libs / ck-libs / cache / CkCache.ci
1 module CkCache {
2   template<class CkCacheKey> message CkCacheRequestMsg;
3
4   template<class CkCacheKey> message CkCacheFillMsg {
5     char data[];
6   };
7
8
9   template<class CkCacheKey> group [migratable] CkCacheManager {
10     entry CkCacheManager(int size, CkGroupID gid);
11     entry CkCacheManager(int size, int n, CkGroupID gid[n]);
12     entry CkCacheManager(int size, int n, CkGroupID gid[n], int nWB, CkGroupID gidWB[nWB]);
13     //entry [local] void * requestData(CkCacheKey what, CkArrayIndex &toWhom, int chunk, CkCacheEntryType *type, CkCacheRequestorData &req);
14     //entry [local] void * requestDataNoFetch(CkCacheKey key, int chunk);
15     entry [local] void cacheSync(int &numChunks, CkArrayIndex &chareIdx, int &localIdx);
16     entry void recvData(CkCacheFillMsg<CkCacheKey> *msg);
17     //entry [local] void recvData(CkCacheKey key, CkArrayIndex &from, CkCacheEntryType *type, int chunk, void *data);
18     entry void writebackChunk(int num);
19     entry void finishedChunk(int num, CmiUInt8 weight);
20     entry void collectStatistics(CkCallback &cb);
21     //entry [local] std::map<CkCacheKey,CkCacheEntry*> *getCache();
22     //entry [local] CkCacheEntry *requestCacheEntryNoFetch(CkCacheKey key, int chunk);
23   };
24
25   message CkCacheFillMsg<CmiUInt8>;
26   message CkCacheRequestMsg<CmiUInt8>;
27   group CkCacheManager<CmiUInt8>;
28
29 #if CMK_HAS_INT16
30   message CkCacheRequestMsg<CmiUInt16>;
31   message CkCacheFillMsg<CmiUInt16>;
32   group CkCacheManager<CmiUInt16>;
33 #endif
34 };