17 #define fei_file "snl_fei::SubdMsgHandler"
25 recordCollection_(recordCollection),
26 sharedIDTable_(sharedIDTable),
27 subdomainIDTable_(subdomainIDTable),
54 FEI_COUT <<
"SubdMsdHandler: destProc: " << destProc <<
", list is NULL."<<
FEI_ENDL;
58 messageLength = list->size();
64 std::vector<int>& message)
66 int len = sendPattern_->getRow(destProc)->size();
68 int* msgPtr = &message[0];
71 fei::comm_map::row_type::const_iterator
72 id_iter = ids->begin(),
76 for(; id_iter != id_end; ++id_iter) {
95 std::vector<int>& message)
98 fei::comm_map::row_type::const_iterator
99 id_iter = ids->begin(),
102 int* msgPtr = &message[0];
104 if (message.size() != ids->size()) {
109 for(; id_iter != id_end; ++id_iter) {
112 bool isInRemoteSubdomain = msgPtr[offset++] > 1 ?
true :
false;
114 if (isInRemoteSubdomain) {
115 subdomainIDTable_->addSharedID(ID, 1, &srcProc);
virtual ~SubdMsgHandler()
int getSendMessage(int destProc, std::vector< int > &message)
std::vector< int > & getSendProcs()
std::vector< int > & getRecvProcs()
void copyKeysToVector(const MAP_TYPE &map_obj, std::vector< int > &keyvector)
SubdMsgHandler(RecordCollection *recordCollection, fei::SharedIDs< int > *sharedIDTable, fei::SharedIDs< int > *subdomainIDTable)
int processRecvMessage(int srcProc, std::vector< int > &message)
int getSendMessageLength(int destProc, int &messageLength)