9 #ifndef _snl_fei_RecordMsgHandler_hpp_
10 #define _snl_fei_RecordMsgHandler_hpp_
12 #include <fei_macros.hpp>
13 #include <fei_CommUtils.hpp>
14 #include <fei_fwd.hpp>
26 RecordCollection* recordCollection,
28 std::vector<fei::FieldMask*>& fieldMasks,
29 std::vector<int>& eqnNumbers);
35 enum {_FieldMasks_ = 0, _MaskIDs_ = 1,
54 void setTask(
int task) { whichTask_ = task; }
58 { sendPattern_ = pattern; }
62 { recvPattern_ = pattern; }
65 int localFieldMaskMessageSize(std::vector<fei::FieldMask*>& fieldMasks);
67 int packLocalFieldMasks(std::vector<fei::FieldMask*>& fieldMasks,
68 std::vector<int>& localFieldMasks);
70 int addFieldMasks(std::vector<int>& msg, std::vector<fei::FieldMask*>& fieldMasks);
72 int packMaskIDs(
int destProc, std::vector<int>& msg);
74 int mergeMaskIDs(
int srcProc, std::vector<int>& msg);
76 int eqnNumbersMsgLength(
int destProc);
78 int packEqnNumbersMsg(
int destProc, std::vector<int>& msg);
80 int storeEqnNumbers(
int srcProc, std::vector<int>& msg);
84 RecordCollection* recordCollection_;
86 std::vector<fei::FieldMask*>& fieldMasks_;
90 std::vector<int> sendProcs_;
91 std::vector<int> recvProcs_;
93 std::vector<int>& eqnNumbers_;
99 #endif // _snl_fei_RecordMsgHandler_hpp_
std::vector< int > & getRecvProcs()
int processRecvMessage(int srcProc, std::vector< int > &message)
std::vector< int > & getSendProcs()
void setSendPattern(fei::comm_map *pattern)
virtual ~RecordMsgHandler()
RecordMsgHandler(int localProc, RecordCollection *recordCollection, snl_fei::PointBlockMap &ptBlkMap, std::vector< fei::FieldMask * > &fieldMasks, std::vector< int > &eqnNumbers)
int getSendMessage(int destProc, std::vector< int > &message)
int getSendMessageLength(int destProc, int &messageLength)
void setRecvPattern(fei::comm_map *pattern)