19 unsigned int msgIndex )
20 :
Msg(
ObjId( managerId_, (msgIndex != 0) ? msgIndex: msg_.size() ),
21 e1.element(), e2.element() )
23 if ( msgIndex == 0 ) {
24 msg_.push_back(
this );
26 if (
msg_.size() <= msgIndex )
27 msg_.resize( msgIndex + 1 );
28 msg_[ msgIndex ] =
this;
63 for (
unsigned int i = 0; i < n; ++i ) {
64 v[i].resize( 1,
Eref(
e1_, i ) );
74 for (
unsigned int i = 0; i < n; ++i ) {
75 v[i].resize( 1,
Eref(
e2_, i ) );
95 FuncId fid,
unsigned int b,
unsigned int n )
const
100 if ( orig ==
e1() ) {
103 }
else if ( orig ==
e2() ) {
121 assert( index <
msg_.size() );
122 return reinterpret_cast< char*
>(
msg_[index] );
137 "OneToOneDataIndexMsg",
static const Cinfo * initCinfo()
Setup function for Element-style access to Msg fields.
ObjId findOtherEnd(ObjId end) const
Element * element() const
Synonym for Id::operator()()
unsigned int dataIndex() const
void addMsgAndFunc(ObjId mid, FuncId fid, BindIndex bindIndex)
Element * element() const
void sources(vector< vector< Eref > > &v) const
static vector< OneToOneDataIndexMsg * > msg_
void targets(vector< vector< Eref > > &v) const
static const Cinfo * msgCinfo
virtual unsigned int numData() const =0
Returns number of data entries across all nodes.
Element * e1_
Index of this Msg on the msg_ vector.
Eref firstTgt(const Eref &src) const
Element * element() const
static unsigned int numMsg()
Msg lookup functions.
Msg * copy(Id origSrc, Id newSrc, Id newTgt, FuncId fid, unsigned int b, unsigned int n) const
static char * lookupMsg(unsigned int index)
Static function for Msg access.
OneToOneDataIndexMsg(const Eref &e1, const Eref &e2, unsigned int msgIndex)
Element * e2_
Element 1 attached to Msg.
const unsigned int BADINDEX
Used by ObjId and Eref.
static const Cinfo * oneToOneMsgCinfo
static const Cinfo * initCinfo()