MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
OneToAllMsg Class Reference

#include <OneToAllMsg.h>

+ Inheritance diagram for OneToAllMsg:
+ Collaboration diagram for OneToAllMsg:

Public Member Functions

Msgcopy (Id origSrc, Id newSrc, Id newTgt, FuncId fid, unsigned int b, unsigned int n) const
 
ObjId findOtherEnd (ObjId end) const
 
Eref firstTgt (const Eref &src) const
 
DataId getI1 () const
 Return the first DataId. More...
 
Id managerId () const
 
 OneToAllMsg (Eref e1, Element *e2, unsigned int msgIndex)
 
void setI1 (DataId i1)
 
void sources (vector< vector< Eref > > &v) const
 
void targets (vector< vector< Eref > > &v) const
 
 ~OneToAllMsg ()
 
- Public Member Functions inherited from Msg
Elemente1 () const
 
Elemente2 () const
 
ObjId getAdjacent (ObjId) const
 
vector< string > getDestFieldsOnE1 () const
 
vector< string > getDestFieldsOnE2 () const
 
Id getE1 () const
 
Id getE2 () const
 
vector< string > getSrcFieldsOnE1 () const
 
vector< string > getSrcFieldsOnE2 () const
 
bool isForward (const Element *src) const
 
ObjId mid () const
 
 Msg (ObjId mid, Element *e1, Element *e2)
 Constructor. More...
 
virtual ~Msg ()
 Destructor. More...
 

Static Public Member Functions

static const CinfoinitCinfo ()
 Setup function for Element-style access to Msg fields. More...
 
static char * lookupMsg (unsigned int index)
 Static function for Msg access. More...
 
static unsigned int numMsg ()
 Assign the first DataId. More...
 
- Static Public Member Functions inherited from Msg
static void clearAllMsgs ()
 
static void deleteMsg (ObjId mid)
 
static const MsggetMsg (ObjId m)
 
static const CinfoinitCinfo ()
 
static unsigned int initMsgManagers ()
 
static bool isLastTrump ()
 True when MOOSE has been terminated and is being cleaned up. More...
 
static const MsglastMsg ()
 

Private Attributes

DataId i1_
 

Static Private Attributes

static Id managerId_
 
static vector< OneToAllMsg * > msg_
 

Friends

unsigned int Msg::initMsgManagers ()
 
void testGetMsgs ()
 

Additional Inherited Members

- Protected Attributes inherited from Msg
Elemente1_
 Index of this Msg on the msg_ vector. More...
 
Elemente2_
 Element 1 attached to Msg. More...
 
ObjId mid_
 
- Static Protected Attributes inherited from Msg
static bool lastTrump_ = false
 Flag to indicate termination of program. More...
 
static Id msgManagerId_
 Element 2 attached to Msg. More...
 

Detailed Description

Manages projection from a single entry in e1 to all array entries in e2.

Definition at line 18 of file OneToAllMsg.h.

Constructor & Destructor Documentation

OneToAllMsg::OneToAllMsg ( Eref  e1,
Element e2,
unsigned int  msgIndex 
)

Definition at line 17 of file OneToAllMsg.cpp.

References msg_.

Referenced by copy().

18  :
19  Msg(
20  ObjId( managerId_, (msgIndex != 0) ? msgIndex: msg_.size() ),
21  e1.element(), e2
22  ),
23  i1_( e1.dataIndex() )
24 {
25  if ( msgIndex == 0 ) {
26  msg_.push_back( this );
27  } else {
28  if ( msg_.size() <= msgIndex )
29  msg_.resize( msgIndex + 1 );
30  msg_[ msgIndex ] = this;
31  }
32 }
Element * e2() const
Definition: Msg.h:68
unsigned int dataIndex() const
Definition: Eref.h:50
Definition: ObjId.h:20
Element * element() const
Definition: Eref.h:42
DataId i1_
Definition: OneToAllMsg.h:49
static Id managerId_
Definition: OneToAllMsg.h:50
static vector< OneToAllMsg * > msg_
Definition: OneToAllMsg.h:51
Msg(ObjId mid, Element *e1, Element *e2)
Constructor.
Definition: Msg.cpp:30

+ Here is the caller graph for this function:

OneToAllMsg::~OneToAllMsg ( )

Definition at line 34 of file OneToAllMsg.cpp.

References ObjId::dataIndex, Msg::mid_, and msg_.

35 {
36  assert( mid_.dataIndex < msg_.size() );
37  msg_[ mid_.dataIndex ] = 0; // ensure deleted ptr isn't reused.
38 }
static vector< OneToAllMsg * > msg_
Definition: OneToAllMsg.h:51
ObjId mid_
Definition: Msg.h:178
unsigned int dataIndex
Definition: ObjId.h:99

Member Function Documentation

Msg * OneToAllMsg::copy ( Id  origSrc,
Id  newSrc,
Id  newTgt,
FuncId  fid,
unsigned int  b,
unsigned int  n 
) const
virtual

Make a copy of this Msg. The original msg was on origSrc. The new Msg should go from newSrc to newTgt, and have the function fid, on bindIndex b. The copy may have to be a higher-order Msg type to handle arrays if n > 1. Note that n is not the number of msgs, but the multiplier by which numData will be scaled.

Implements Msg.

Definition at line 81 of file OneToAllMsg.cpp.

References Element::addMsgAndFunc(), Msg::e1(), Msg::e2(), Id::element(), i1_, Msg::mid(), and OneToAllMsg().

83 {
84  const Element* orig = origSrc.element();
85  if ( n <= 1 ) {
86  OneToAllMsg* ret = 0;
87  if ( orig == e1() ) {
88  ret = new OneToAllMsg(
89  Eref( newSrc.element(), i1_ ), newTgt.element(), 0 );
90  ret->e1()->addMsgAndFunc( ret->mid(), fid, b );
91  } else if ( orig == e2() ) {
92  ret = new OneToAllMsg(
93  Eref( newTgt.element(), i1_ ), newSrc.element(), 0 );
94  ret->e2()->addMsgAndFunc( ret->mid(), fid, b );
95  } else {
96  assert( 0 );
97  }
98  return ret;
99  } else {
100  // Here we need a SliceMsg which goes from one 2-d array to another.
101  cout << "Error: OneToAllMsg::copy: SliceToSliceMsg not yet implemented\n";
102  return 0;
103  }
104 }
Element * e2() const
Definition: Msg.h:68
ObjId mid() const
Definition: Msg.h:106
Element * element() const
Synonym for Id::operator()()
Definition: Id.cpp:113
void addMsgAndFunc(ObjId mid, FuncId fid, BindIndex bindIndex)
Definition: Element.cpp:128
DataId i1_
Definition: OneToAllMsg.h:49
OneToAllMsg(Eref e1, Element *e2, unsigned int msgIndex)
Definition: OneToAllMsg.cpp:17
Definition: Eref.h:26
Element * e1() const
Definition: Msg.h:61

+ Here is the call graph for this function:

ObjId OneToAllMsg::findOtherEnd ( ObjId  ) const
virtual

Find the other end of this Msg. In most cases this is a straightforward return of e1 or e2, plus perhaps a DataId. But in some complex msgs we need to figure out DataIds that match with the target. In many-to-one cases we just return the first entry. If no Element match, return ObjId( Id(), DataId::bad() ) If Element e matches but not DataId, return ObjId( e.id(), DataId::bad() )

Implements Msg.

Definition at line 69 of file OneToAllMsg.cpp.

References BADINDEX, ObjId::dataIndex, Msg::e1(), Msg::e2(), ObjId::element(), and i1_.

70 {
71  if ( f.element() == e1() ) {
72  if ( f.dataIndex == i1_ )
73  return ObjId( e2()->id(), 0 );
74  } else if ( f.element() == e2() ) {
75  return ObjId( e1()->id(), i1_ );
76  }
77 
78  return ObjId( 0, BADINDEX );
79 }
Element * e2() const
Definition: Msg.h:68
Definition: ObjId.h:20
DataId i1_
Definition: OneToAllMsg.h:49
Element * e1() const
Definition: Msg.h:61
const unsigned int BADINDEX
Used by ObjId and Eref.
Definition: consts.cpp:25

+ Here is the call graph for this function:

Eref OneToAllMsg::firstTgt ( const Eref src) const
virtual

Obtain the first target Eref for the specified Src Eref It is really meant only to work with messages with a single target ObjId for each given src, typically OneToOne.

Implements Msg.

Definition at line 40 of file OneToAllMsg.cpp.

References Msg::e1_, Msg::e2_, Eref::element(), and i1_.

41 {
42  if ( src.element() == e1_ )
43  return Eref( e2_, 0 );
44  else if ( src.element() == e2_ )
45  return Eref( e1_, i1_ );
46  return Eref( 0, 0 );
47 }
Element * element() const
Definition: Eref.h:42
DataId i1_
Definition: OneToAllMsg.h:49
Definition: Eref.h:26
Element * e1_
Index of this Msg on the msg_ vector.
Definition: Msg.h:180
Element * e2_
Element 1 attached to Msg.
Definition: Msg.h:181

+ Here is the call graph for this function:

DataId OneToAllMsg::getI1 ( ) const

Return the first DataId.

Return the first DataId

Definition at line 143 of file OneToAllMsg.cpp.

References i1_.

Referenced by initCinfo().

144 {
145  return i1_;
146 }
DataId i1_
Definition: OneToAllMsg.h:49

+ Here is the caller graph for this function:

const Cinfo * OneToAllMsg::initCinfo ( )
static

Setup function for Element-style access to Msg fields.

Definition at line 110 of file OneToAllMsg.cpp.

References getI1(), Msg::initCinfo(), msgCinfo, and setI1().

Referenced by Msg::initMsgManagers().

111 {
113  // Field definitions.
116  "i1",
117  "DataId of source Element.",
120  );
121 
122  static Finfo* msgFinfos[] = {
123  &i1, // value
124  };
125 
126  static Dinfo< short > dinfo;
127  static Cinfo msgCinfo (
128  "OneToAllMsg", // name
129  Msg::initCinfo(), // base class
130  msgFinfos,
131  sizeof( msgFinfos ) / sizeof( Finfo* ), // num Fields
132  &dinfo
133  );
134 
135  return &msgCinfo;
136 }
DataId getI1() const
Return the first DataId.
void setI1(DataId i1)
Definition: Dinfo.h:60
static const Cinfo * msgCinfo
Definition: Msg.cpp:233
Definition: Cinfo.h:18
static const Cinfo * initCinfo()
Definition: Msg.cpp:165
Definition: Finfo.h:12

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

char * OneToAllMsg::lookupMsg ( unsigned int  index)
static

Static function for Msg access.

Definition at line 162 of file OneToAllMsg.cpp.

References msg_.

Referenced by Msg::clearAllMsgs(), and Msg::initMsgManagers().

163 {
164  assert( index < msg_.size() );
165  return reinterpret_cast< char* >( msg_[index] );
166 }
static vector< OneToAllMsg * > msg_
Definition: OneToAllMsg.h:51

+ Here is the caller graph for this function:

Id OneToAllMsg::managerId ( ) const

Definition at line 64 of file OneToAllMsg.cpp.

References managerId_.

65 {
67 }
static Id managerId_
Definition: OneToAllMsg.h:50
unsigned int OneToAllMsg::numMsg ( )
static

Assign the first DataId.

Static function for Msg access.

Msg lookup functions

Definition at line 156 of file OneToAllMsg.cpp.

References msg_.

Referenced by Msg::clearAllMsgs(), Shell::doCreate(), Shell::doUseClock(), and Msg::initMsgManagers().

157 {
158  return msg_.size();
159 }
static vector< OneToAllMsg * > msg_
Definition: OneToAllMsg.h:51

+ Here is the caller graph for this function:

void OneToAllMsg::setI1 ( DataId  i1)

Definition at line 148 of file OneToAllMsg.cpp.

References Msg::e1(), Msg::e2(), i1_, and Element::markRewired().

Referenced by initCinfo().

149 {
150  i1_ = i1;
151  e1()->markRewired();
152  e2()->markRewired();
153 }
void markRewired()
Definition: Element.cpp:706
Element * e2() const
Definition: Msg.h:68
DataId i1_
Definition: OneToAllMsg.h:49
Element * e1() const
Definition: Msg.h:61

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void OneToAllMsg::sources ( vector< vector< Eref > > &  v) const
virtual

Return all the sources of e2 from e1, that is, all the msgs coming into specified entries on e2 from e1.

ALLDATA used when the sources include all data entries on a source. Indexing is v[dataId in range e2.numData][src list]

Implements Msg.

Definition at line 49 of file OneToAllMsg.cpp.

References Msg::e1_, Msg::e2_, i1_, and Element::numData().

50 {
51  // Same single source for all targets.
52  v.clear();
53  vector< Eref > temp( 1, Eref( e1_, i1_ ) );
54  v.assign( e2_->numData(), temp );
55 }
DataId i1_
Definition: OneToAllMsg.h:49
Definition: Eref.h:26
virtual unsigned int numData() const =0
Returns number of data entries across all nodes.
Element * e1_
Index of this Msg on the msg_ vector.
Definition: Msg.h:180
Element * e2_
Element 1 attached to Msg.
Definition: Msg.h:181

+ Here is the call graph for this function:

void OneToAllMsg::targets ( vector< vector< Eref > > &  v) const
virtual

Return all the targets of e1 on e2, that is, all the msgs going from specified entries on e1 to e2. ALLDATA used when the targets include all data entries on a target. Indexing is v[dataId in range e1.numData][tgt list]

Implements Msg.

Definition at line 57 of file OneToAllMsg.cpp.

References ALLDATA, Msg::e1_, Msg::e2_, i1_, and Element::numData().

58 {
59  v.clear();
60  v.resize( e1_->numData() );
61  v[i1_].resize( 1, Eref( e2_, ALLDATA ) );
62 }
DataId i1_
Definition: OneToAllMsg.h:49
const unsigned int ALLDATA
Used by ObjId and Eref.
Definition: consts.cpp:22
Definition: Eref.h:26
virtual unsigned int numData() const =0
Returns number of data entries across all nodes.
Element * e1_
Index of this Msg on the msg_ vector.
Definition: Msg.h:180
Element * e2_
Element 1 attached to Msg.
Definition: Msg.h:181

+ Here is the call graph for this function:

Friends And Related Function Documentation

unsigned int Msg::initMsgManagers ( )
friend
void testGetMsgs ( )
friend

Tests message inspection fields on Neutral. These include msgOut: all outgoing Msgs, reported as ObjId of their managers msgIn: all incoming Msgs, reported as ObjId of their managers msgSrc: All source Ids of messages coming into specified field msgDest: All dest Ids of messages going out of specified field

Definition at line 1518 of file testShell.cpp.

1519 {
1520  Eref sheller = Id().eref();
1521  Shell* shell = reinterpret_cast< Shell* >( sheller.data() );
1522  unsigned int numData = 5;
1523 
1525  // Set up the objects.
1527  Id a1 = shell->doCreate( "Arith", Id(), "a1", numData );
1528  Id a2 = shell->doCreate( "Arith", Id(), "a2", numData );
1529 
1530  Id b1 = shell->doCreate( "Arith", Id(), "b1", numData );
1531  Id b2 = shell->doCreate( "Arith", Id(), "b2", numData );
1532 
1533  Id c1 = shell->doCreate( "Arith", Id(), "c1", numData );
1534  Id c2 = shell->doCreate( "Arith", Id(), "c2", numData );
1535 
1536  Id d1 = shell->doCreate( "Arith", Id(), "d1", numData );
1537  Id d2 = shell->doCreate( "Arith", Id(), "d2", numData );
1538 
1539  Id e1 = shell->doCreate( "Arith", Id(), "e1", numData );
1540  Id e2 = shell->doCreate( "Arith", Id(), "e2", numData );
1541 
1543  // Set up messaging
1545  // Should give 04000
1546  ObjId m1 = shell->doAddMsg( "Single",
1547  ObjId( a1, 3 ), "output", ObjId( a2, 1 ), "arg3" );
1548  assert( m1 != ObjId() );
1549 
1550  // Should give 33333
1551  ObjId m2 = shell->doAddMsg( "OneToAll",
1552  ObjId( a1, 2 ), "output", ObjId( b2, 0 ), "arg3" );
1553  assert( m2 != ObjId() );
1554 
1555  // Should give 12345
1556  ObjId m3 = shell->doAddMsg( "OneToOne",
1557  ObjId( a1, 0 ), "output", ObjId( c2, 0 ), "arg3" );
1558  assert( m3 != ObjId() );
1559 
1560  // Should give 01234
1561  ObjId m4 = shell->doAddMsg( "Diagonal",
1562  ObjId( a1, 0 ), "output", ObjId( d2, 0 ), "arg3" );
1563  assert( m4 != ObjId() );
1564 
1565  // Should give 54321
1566  ObjId m5 = shell->doAddMsg( "Sparse",
1567  ObjId( a1, 0 ), "output", ObjId( e2, 0 ), "arg3" );
1568  assert( m5 != ObjId() );
1569 
1571  // Check that the outgoing Msgs are OK.
1573  // Nov 2013: Wait till the Msg ObjIds are set up.
1574  /*
1575 
1576  vector< ObjId > msgMgrs =
1577  Field< vector< ObjId > >::get( a1, "msgOut" );
1578  assert( msgMgrs.size() == 5 ); // 5 above.
1579  for ( unsigned int i = 0; i < 5; ++i )
1580  assert( Field< Id >::get( msgMgrs[i], "e1" ) == a1 );
1581 
1582  assert( Field< string >::get( msgMgrs[0], "className" ) == "SingleMsg" );
1583  assert( Field< string >::get( msgMgrs[1], "className" ) == "OneToAllMsg" );
1584  assert( Field< string >::get( msgMgrs[2], "className" ) == "OneToOneMsg" );
1585  assert( Field< string >::get( msgMgrs[3], "className" ) == "DiagonalMsg" );
1586  assert( Field< string >::get( msgMgrs[4], "className" ) == "SparseMsg" );
1587 
1588  assert( Field< Id >::get( msgMgrs[0], "e2" ) == a2 );
1589  assert( Field< Id >::get( msgMgrs[1], "e2" ) == b2 );
1590  assert( Field< Id >::get( msgMgrs[2], "e2" ) == c2 );
1591  assert( Field< Id >::get( msgMgrs[3], "e2" ) == d2 );
1592  assert( Field< Id >::get( msgMgrs[4], "e2" ) == e2 );
1593  cout << "." << flush;
1594 
1596  // Check that the incoming Msgs are OK.
1598  msgMgrs = Field< vector< ObjId > >::get( a1, "msgIn" );
1599  assert( msgMgrs.size() == 1 ); // parent msg
1600  assert( msgMgrs[0].id == OneToAllMsg::managerId_ );
1601 
1602  assert( Field< Id >::get( msgMgrs[0], "e1" ) == Id() );
1603  assert( Field< Id >::get( msgMgrs[0], "e2" ) == a1 );
1604 
1605  msgMgrs = Field< vector< ObjId > >::get( a2, "msgIn" );
1606  assert( msgMgrs.size() == 2 ); // parent msg + input msg
1607  assert( Field< Id >::get( msgMgrs[0], "e1" ) == Id() );
1608  assert( Field< Id >::get( msgMgrs[0], "e2" ) == a2 );
1609  assert( Field< Id >::get( msgMgrs[1], "e1" ) == a1 );
1610  assert( Field< Id >::get( msgMgrs[1], "e2" ) == a2 );
1611 
1612  msgMgrs = Field< vector< ObjId > >::get( b2, "msgIn" );
1613  assert( msgMgrs.size() == 2 ); // parent msg + input msg
1614  assert( Field< Id >::get( msgMgrs[0], "e1" ) == Id() );
1615  assert( Field< Id >::get( msgMgrs[0], "e2" ) == b2 );
1616  assert( Field< Id >::get( msgMgrs[1], "e1" ) == a1 );
1617  assert( Field< Id >::get( msgMgrs[1], "e2" ) == b2 );
1618 
1619  msgMgrs = Field< vector< ObjId > >::get( c2, "msgIn" );
1620  assert( msgMgrs.size() == 2 ); // parent msg + input msg
1621  assert( Field< Id >::get( msgMgrs[0], "e1" ) == Id() );
1622  assert( Field< Id >::get( msgMgrs[0], "e2" ) == c2 );
1623  assert( Field< Id >::get( msgMgrs[1], "e1" ) == a1 );
1624  assert( Field< Id >::get( msgMgrs[1], "e2" ) == c2 );
1625 
1626  msgMgrs = Field< vector< ObjId > >::get( d2, "msgIn" );
1627  assert( msgMgrs.size() == 2 ); // parent msg + input msg
1628  assert( Field< Id >::get( msgMgrs[0], "e1" ) == Id() );
1629  assert( Field< Id >::get( msgMgrs[0], "e2" ) == d2 );
1630  assert( Field< Id >::get( msgMgrs[1], "e1" ) == a1 );
1631  assert( Field< Id >::get( msgMgrs[1], "e2" ) == d2 );
1632 
1633  msgMgrs = Field< vector< ObjId > >::get( e2, "msgIn" );
1634  assert( msgMgrs.size() == 2 ); // parent msg + input msg
1635  assert( Field< Id >::get( msgMgrs[0], "e1" ) == Id() );
1636  assert( Field< Id >::get( msgMgrs[0], "e2" ) == e2 );
1637  assert( Field< Id >::get( msgMgrs[1], "e1" ) == a1 );
1638  assert( Field< Id >::get( msgMgrs[1], "e2" ) == e2 );
1639  cout << "." << flush;
1640  */
1641 
1643  // Check that the MsgSrcs are OK.
1645  vector< Id > srcIds;
1646  srcIds = LookupField< string, vector< Id > >::get( a2, "neighbors", "arg3" );
1647  assert( srcIds.size() == 1 );
1648  assert( srcIds[0] == a1 );
1649  srcIds.resize( 0 );
1650  srcIds = LookupField< string, vector< Id > >::get( b2, "neighbors", "arg3" );
1651  assert( srcIds.size() == 1 );
1652  assert( srcIds[0] == a1 );
1653  srcIds.resize( 0 );
1654  srcIds = LookupField< string, vector< Id > >::get( c2, "neighbors", "arg3" );
1655  assert( srcIds.size() == 1 );
1656  assert( srcIds[0] == a1 );
1657 
1658  ObjId m6 = shell->doAddMsg( "Single",
1659  ObjId( b1, 3 ), "output", ObjId( b2, 1 ), "arg3" );
1660  assert( m6 != ObjId() );
1661  srcIds.resize( 0 );
1662  srcIds = LookupField< string, vector< Id > >::get( b2, "neighbors", "arg3" );
1663  assert( srcIds.size() == 2 );
1664  assert( srcIds[0] == a1 );
1665  assert( srcIds[1] == b1 );
1666  cout << "." << flush;
1667 
1669  // Check that the MsgDests are OK.
1671  vector< Id > destIds;
1672  destIds = LookupField< string, vector< Id > >::get( a1, "neighbors", "output" );
1673  assert( destIds.size() == 5 );
1674  assert( destIds[0] == a2 );
1675  assert( destIds[1] == b2 );
1676  assert( destIds[2] == c2 );
1677  assert( destIds[3] == d2 );
1678  assert( destIds[4] == e2 );
1679  destIds.resize( 0 );
1680  destIds = LookupField< string, vector< Id > >::get( b1, "neighbors", "output" );
1681  assert( destIds.size() == 1 );
1682  assert( destIds[0] == b2 );
1683  cout << "." << flush;
1684 
1686  // Clean up.
1688 
1689 
1690  shell->doDelete( a1 );
1691  shell->doDelete( a2 );
1692  shell->doDelete( b1 );
1693  shell->doDelete( b2 );
1694  shell->doDelete( c1 );
1695  shell->doDelete( c2 );
1696  shell->doDelete( d1 );
1697  shell->doDelete( d2 );
1698  shell->doDelete( e1 );
1699  shell->doDelete( e2 );
1700 }
Element * e2() const
Definition: Msg.h:68
char * data() const
Definition: Eref.cpp:41
Definition: ObjId.h:20
Eref eref() const
Definition: Id.cpp:125
Id doCreate(string type, ObjId parent, string name, unsigned int numData, NodePolicy nodePolicy=MooseBlockBalance, unsigned int preferredNode=1)
Definition: Shell.cpp:181
Definition: Eref.h:26
Element * e1() const
Definition: Msg.h:61
ObjId doAddMsg(const string &msgType, ObjId src, const string &srcField, ObjId dest, const string &destField)
Definition: Shell.cpp:269
bool doDelete(ObjId oid)
Definition: Shell.cpp:259
Definition: Id.h:17
Definition: Shell.h:43

Member Data Documentation

DataId OneToAllMsg::i1_
private

Definition at line 49 of file OneToAllMsg.h.

Referenced by copy(), findOtherEnd(), firstTgt(), getI1(), setI1(), sources(), and targets().

Id OneToAllMsg::managerId_
staticprivate

Definition at line 50 of file OneToAllMsg.h.

Referenced by Msg::initMsgManagers(), and managerId().

vector< OneToAllMsg * > OneToAllMsg::msg_
staticprivate

Definition at line 51 of file OneToAllMsg.h.

Referenced by lookupMsg(), numMsg(), OneToAllMsg(), and ~OneToAllMsg().


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