
#include <RectMulticastStrategy.h>


Public Member Functions | |
| RectMulticastStrategy (CkMigrateMessage *m) | |
| RectMulticastStrategy (CkArrayID aid) | |
| Array constructor. | |
| ~RectMulticastStrategy () | |
| virtual void | insertMessage (CharmMessageHolder *msg) |
| virtual void | doneInserting () |
| Called after all messages have been deposited in this processor. | |
| virtual void | handleMessage (void *msg) |
| Called by the converse handler function. | |
| virtual void | handleMessageForward (void *msg) |
| virtual void | pup (PUP::er &p) |
| virtual void | beginProcessing (int nelements) |
| PUPable_decl (RectMulticastStrategy) | |
Protected Member Functions | |
| unsigned int | computeKey (int sectionID, int srcPe, CkArrayID arrId) |
| unsigned int | computeKey (int sectionID, int srcPe, int id) |
| void | insertSectionID (CkSectionID *sid) |
| Add this section to the hash table locally. | |
| virtual ComlibRectSectionHashObject * | createObjectOnSrcPe (int nindices, CkArrayIndex *idx_list, unsigned int sectionid) |
| Called when a new section multicast is called by the user locally. | |
| virtual ComlibRectSectionHashObject * | createObjectOnIntermediatePe (int nindices, CkArrayIndex *idxlist, int npes, ComlibMulticastIndexCount *counts, int srcpe, int sectionID) |
| Similar to createHashObjectOnSrcPe, but that this call is made on the destination or intermediate processor. | |
| virtual int | needSorting () |
| Needed for getNewMulticastMessage, to specify if the list of processors need to be ordered. | |
| void | localMulticast (envelope *env, ComlibRectSectionHashObject *obj) |
| Called to multicast the message to local array elements. | |
| virtual void | remoteMulticast (envelope *env, ComlibRectSectionHashObject *obj) |
| Called to send to message out to the remote destinations. | |
| virtual void | forwardMulticast (envelope *env, ComlibRectSectionHashObject *obj) |
| Called to forward to someone who can do the heavy sending work. | |
| void | handleNewMulticastMessage (envelope *env) |
| Process a new message by extracting the array elements from it and creating a new hash object by calling createObjectOnIntermediatePe(). | |
| void | sendRectDest (ComlibRectSectionHashObject *obj, int srcpe, envelope *env) |
| BGTsRC_Geometry_t * | getRectGeometry (ComlibRectSectionHashObject *obj, int srcpe) |
| int | assignCornerRoot (BGTsRC_Geometry_t *geom, int srcpe) |
Protected Attributes | |
| int | handlerId |
| ComlibSectionInfo | sinfo |
| CkHashtableT < ComlibSectionHashKey, ComlibRectSectionHashObject * > | sec_ht |
| Array section support. | |
Private Member Functions | |
| RectMulticastStrategy (CkMigrateMessage *m) | |
| ~RectMulticastStrategy () | |
| void | insertMessage (MessageHolder *) |
| Called for each message. | |
| void | handleMessage (void *) |
| Called when a message is received in the strategy handler. | |
| void | pup (PUP::er &p) |
| PUPable_decl (RectMulticastStrategy) | |
It defaults to sending a direct message to all the processors involved in the multicast.
The definition of the section, as well as the location of all the elements in the processors is determined by the sending processor. The other will obey to it, even some elements have already migrated elsewhere.
Definition at line 44 of file RectMulticastStrategy.h.
| RectMulticastStrategy::RectMulticastStrategy | ( | CkMigrateMessage * | m | ) | [inline] |
Definition at line 110 of file RectMulticastStrategy.h.
| RectMulticastStrategy::RectMulticastStrategy | ( | CkMigrateMessage * | m | ) | [inline, private] |
Definition at line 133 of file RectMulticastStrategy.h.
| RectMulticastStrategy::~RectMulticastStrategy | ( | ) | [inline, private] |
Definition at line 135 of file RectMulticastStrategy.h.
| unsigned int RectMulticastStrategy::computeKey | ( | int | sectionID, | |
| int | srcPe, | |||
| CkArrayID | arrId | |||
| ) | [inline, protected] |
Definition at line 53 of file RectMulticastStrategy.h.
References idx.
Referenced by createObjectOnIntermediatePe(), createObjectOnSrcPe(), and remoteMulticast().
| unsigned int RectMulticastStrategy::computeKey | ( | int | sectionID, | |
| int | srcPe, | |||
| int | id | |||
| ) | [inline, protected] |
Definition at line 57 of file RectMulticastStrategy.h.
| virtual int RectMulticastStrategy::needSorting | ( | ) | [inline, protected, virtual] |
Needed for getNewMulticastMessage, to specify if the list of processors need to be ordered.
Definition at line 85 of file RectMulticastStrategy.h.
Referenced by insertMessage().
| RectMulticastStrategy::PUPable_decl | ( | RectMulticastStrategy | ) |
| void RectMulticastStrategy::insertMessage | ( | MessageHolder * | msg | ) | [inline, private, virtual] |
Called for each message.
Implements Strategy.
Definition at line 136 of file RectMulticastStrategy.h.
| void RectMulticastStrategy::handleMessage | ( | void * | msg | ) | [inline, private, virtual] |
Called when a message is received in the strategy handler.
Implements Strategy.
Definition at line 137 of file RectMulticastStrategy.h.
| void RectMulticastStrategy::pup | ( | PUP::er & | p | ) | [inline, private, virtual] |
| RectMulticastStrategy::PUPable_decl | ( | RectMulticastStrategy | ) | [private] |
int RectMulticastStrategy::handlerId [protected] |
Definition at line 46 of file RectMulticastStrategy.h.
Referenced by beginProcessing(), and forwardMulticast().
ComlibSectionInfo RectMulticastStrategy::sinfo [protected] |
Definition at line 47 of file RectMulticastStrategy.h.
Referenced by beginProcessing(), createObjectOnIntermediatePe(), createObjectOnSrcPe(), handleNewMulticastMessage(), and insertMessage().
CkHashtableT<ComlibSectionHashKey, ComlibRectSectionHashObject *> RectMulticastStrategy::sec_ht [protected] |
Array section support.
Definition at line 50 of file RectMulticastStrategy.h.
Referenced by handleMessage(), handleMessageForward(), handleNewMulticastMessage(), insertMessage(), insertSectionID(), and ~RectMulticastStrategy().
1.5.5