
#include <EachToManyMulticastStrategy.h>


Public Member Functions | |
| EachToManyMulticastStrategy (int strategyId, CkGroupID src, CkGroupID dest, int nsrcpes=0, int *srcpelist=0, int ndestpes=0, int *destpelist=0) | |
| Group constructor If only the first three parameters are provided, the whole group will be used for the multicast(0 to CkNumPes) TODO verify that the 0 parameter. | |
| EachToManyMulticastStrategy (int substrategy, CkArrayID src, CkArrayID dest, int nsrc=0, CkArrayIndex *srcelements=0, int ndest=0, CkArrayIndex *destelements=0) | |
| Array constructor TODO: Fix this to allow for the same parameters as would be given to an array section creation(ranges of indices). | |
| EachToManyMulticastStrategy (CkMigrateMessage *m) | |
| ~EachToManyMulticastStrategy () | |
| void | insertMessage (MessageHolder *msg) |
| Receive a message from the upper layer and buffer it in the msgQ until doneInserting is called. | |
| virtual void | insertMessage (CharmMessageHolder *msg) |
| virtual void | pup (PUP::er &p) |
| virtual void | localMulticast (void *msg) |
| virtual void | notifyDone () |
| Called when a subsystem scheme (like in bracketed EachToMany) terminates the requested routing operation. | |
| virtual void | deliver (char *, int) |
| Called by handleMessage at the destinations for the broadcast if in DIRECT mode. | |
| virtual void | handleMessage (void *msg) |
| this method can be called when the strategy is in DIRECT mode, so the message will go the comlib_handler and then arrive here. | |
| PUPable_decl (EachToManyMulticastStrategy) | |
Protected Member Functions | |
| virtual void | commonInit (int *) |
| Executes common code just after array and group constructors. | |
It combines messages and sends them along virtual topologies 2d mesh, 3d mesh and hypercube using the RouterStrategy as underlying strategy.
For large messages send them directly.
This is the object level strategy. For processor level optimizations the underlying RouterStrategy is called.
Definition at line 28 of file EachToManyMulticastStrategy.h.
| EachToManyMulticastStrategy::EachToManyMulticastStrategy | ( | CkMigrateMessage * | m | ) | [inline] |
Definition at line 49 of file EachToManyMulticastStrategy.h.
References Converse::CkMyPe(), and ComlibPrintf().
| void EachToManyMulticastStrategy::insertMessage | ( | MessageHolder * | cmsg | ) | [inline, virtual] |
Receive a message from the upper layer and buffer it in the msgQ until doneInserting is called.
If the strategy is USE_DIRECT then just send it to the handleMessage method for the Strategy.
Reimplemented from RouterStrategy.
Definition at line 55 of file EachToManyMulticastStrategy.h.
| virtual void EachToManyMulticastStrategy::handleMessage | ( | void * | msg | ) | [inline, virtual] |
this method can be called when the strategy is in DIRECT mode, so the message will go the comlib_handler and then arrive here.
Reimplemented from RouterStrategy.
Definition at line 73 of file EachToManyMulticastStrategy.h.
References deliver(), and envelope::getTotalsize().
| EachToManyMulticastStrategy::PUPable_decl | ( | EachToManyMulticastStrategy | ) |
1.5.5