PPL Logo

Router Class Reference
[Converse level message Routers]

Base class for routers. More...

#include <router.h>

Inheritance diagram for Router:

Inheritance graph
[legend]
Collaboration diagram for Router:

Collaboration graph
[legend]

Public Member Functions

 Router (Strategy *cont)
virtual ~Router ()
virtual void EachToAllMulticast (comID id, int size, void *msg, int more)
 Insert messages for the all to all operation, All processors will be multicast the same message here.
virtual void EachToManyMulticast (comID id, int size, void *msg, int numPes, int *pelist, int more)
 Insert messages for the all to all operation, The destination processors to which a message is multicast to be can be specified.
virtual void EachToManyMulticastQ (comID id, CkQ< MessageHolder * > &msgq)
 Same as EachToManyMulticast, only it receives all the messages into a list.
virtual void RecvManyMsg (comID, char *)
virtual void ProcManyMsg (comID, char *)
virtual void DummyEP (comID, int)
virtual void SetMap (int *)
 Set the map between processors and virtual processor id's, Useful when only a subset of processors are involved in the communication operation.
void SendDummyMsg (comID id, int pe, int magic)
void Done (comID id)
 set the handler that will be called when an iteration finishes

Protected Attributes

Strategycontainer

Detailed Description

Base class for routers.

Imported from Krishnan's Each To Many Communication Framework. Modified to suit the new communication library. Sameer Kumar 05/14/04

Definition at line 71 of file router.h.


Constructor & Destructor Documentation

Router::Router ( Strategy cont  )  [inline]

Definition at line 78 of file router.h.

virtual Router::~Router (  )  [inline, virtual]

Definition at line 79 of file router.h.


Member Function Documentation

virtual void Router::EachToAllMulticast ( comID  id,
int  size,
void *  msg,
int  more 
) [inline, virtual]

Insert messages for the all to all operation, All processors will be multicast the same message here.

Reimplemented in D3GridRouter, DimexRouter, GraphRouter, GridRouter, HypercubeRouter, and TreeRouter.

Definition at line 83 of file router.h.

References CmiPrintf().

virtual void Router::EachToManyMulticast ( comID  id,
int  size,
void *  msg,
int  numPes,
int pelist,
int  more 
) [inline, virtual]

Insert messages for the all to all operation, The destination processors to which a message is multicast to be can be specified.

Parameters:
id communication operation identifier
size size of the message
msg message to be sent
numPes number of processors the message has to be sent to
pelist list of relative proc ids the message has to be multicast to

Reimplemented in D3GridRouter, DimexRouter, GraphRouter, GridRouter, HypercubeRouter, and TreeRouter.

Definition at line 94 of file router.h.

References CmiPrintf().

Referenced by EachToManyMulticastQ().

virtual void Router::EachToManyMulticastQ ( comID  id,
CkQ< MessageHolder * > &  msgq 
) [inline, virtual]

Same as EachToManyMulticast, only it receives all the messages into a list.

Reimplemented in DimexRouter, GridRouter, HypercubeRouter, and PrefixRouter.

Definition at line 99 of file router.h.

References CkQ< T >::deq(), EachToManyMulticast(), MessageHolder::getMessage(), CkQ< T >::length(), MessageHolder::npes, MessageHolder::pelist, and MessageHolder::size.

Referenced by RouterStrategy::doneInserting().

virtual void Router::RecvManyMsg ( comID  ,
char *   
) [inline, virtual]

Reimplemented in D3GridRouter, DimexRouter, GraphRouter, GridRouter, HypercubeRouter, and TreeRouter.

Definition at line 116 of file router.h.

References CmiPrintf().

Referenced by routerRecvManyCombinedMsg().

virtual void Router::ProcManyMsg ( comID  ,
char *   
) [inline, virtual]

Reimplemented in D3GridRouter, DimexRouter, GraphRouter, GridRouter, HypercubeRouter, and TreeRouter.

Definition at line 120 of file router.h.

References CmiPrintf().

Referenced by routerProcManyCombinedMsg().

virtual void Router::DummyEP ( comID  ,
int   
) [inline, virtual]

Reimplemented in D3GridRouter, DimexRouter, GraphRouter, GridRouter, HypercubeRouter, and TreeRouter.

Definition at line 123 of file router.h.

References CmiPrintf().

Referenced by routerDummyMsg().

virtual void Router::SetMap ( int  )  [inline, virtual]

Set the map between processors and virtual processor id's, Useful when only a subset of processors are involved in the communication operation.

Reimplemented in D3GridRouter, DimexRouter, GraphRouter, GridRouter, HypercubeRouter, PrefixRouter, and TreeRouter.

Definition at line 128 of file router.h.

Referenced by RouterStrategy::setupRouter().

void Router::SendDummyMsg ( comID  id,
int  pe,
int  magic 
) [inline]

void Router::Done ( comID  id  )  [inline]

set the handler that will be called when an iteration finishes

called by the subclasses when the iteration has completed

Definition at line 148 of file router.h.

References ConvComlibGetStrategy(), and Strategy::notifyDone().

Referenced by PrefixRouter::EachToManyMulticastQ(), TreeRouter::LocalProcMsg(), HypercubeRouter::LocalProcMsg(), GridRouter::LocalProcMsg(), DimexRouter::LocalProcMsg(), D3GridRouter::LocalProcMsg(), and GraphRouter::ProcManyMsg().


Field Documentation


The documentation for this class was generated from the following file:

Generated on Fri May 25 08:05:15 2012 for Charm++ by  doxygen 1.5.5