some code docs for ckmulticast
[charm.git] / src / libs / ck-libs / multicast / ckmulticast.h
index 4ec06db2ad981fa976d0a55a25faee4e98830f95..8c5d4a5b808c6a3acf43dd896e60e3142cfbff8b 100644 (file)
@@ -121,23 +121,27 @@ class CkMulticastMgr: public CkDelegateMgr
         void contribute(int dataSize,void *data,CkReduction::reducerType type, CkSectionInfo &sid, int userData=-1, int fragSize=-1);
         /// reduction trigger with a callback
         void contribute(int dataSize,void *data,CkReduction::reducerType type, CkSectionInfo &sid, CkCallback &cb, int userData=-1, int fragSize=-1);
+        /// @note: User should be careful while passing non-default value of fragSize. fragSize%sizeof(data_type) should be zero
 
 
         /// Recreate the section when root migrate
         void resetSection(CProxySection_ArrayElement &proxy);  // called by root
+        /// Implement the CkDelegateMgr interface to accept the delegation of a section proxy
         virtual void initDelegateMgr(CProxy *proxy);
-        /// override from base class. 
+        /// To implement the CkDelegateMgr interface for section mcasts
         void ArraySectionSend(CkDelegateData *pd,int ep,void *m, int nsid, CkSectionID *s, int opts);
+        /// Send individually to each section member. Used when tree is out-of-date and needs a rebuild
         void SimpleSend(int ep,void *m, CkArrayID a, CkSectionID &sid, int opts);
-        // user should be careful while passing non-default value of fragSize
-        // fragSize%sizeof(data_type) should be zero
+        /// Retire and rebuild the spanning tree when one of the intermediate vertices migrates
         void rebuild(CkSectionInfo &);
         // typedef CkMcastReductionMsg *(*reducerFn)(int nMsg,CkMcastReductionMsg **msgs);
 
     private:
+        /// Fill the SectionInfo cookie in the SectionID obj with relevant info
         void prepareCookie(mCastEntry *entry, CkSectionID &sid, const CkArrayIndexMax *al, int count, CkArrayID aid);
         /// Get info from the CkSectionInfo and call setup() to start the spanning tree build
         void initCookie(CkSectionInfo sid);
+        /// Mark old cookie spanning tree as old and build a new one
         void resetCookie(CkSectionInfo sid);
         enum {MAXREDUCERS=256};
         // static CkReduction::reducerFn reducerTable[MAXREDUCERS];