9#ifndef _snl_fei_RecordMsgHandler_hpp_
10#define _snl_fei_RecordMsgHandler_hpp_
12#include <fei_macros.hpp>
13#include <fei_CommUtils.hpp>
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);
86 std::vector<fei::FieldMask*>& fieldMasks_;
90 std::vector<int> sendProcs_;
91 std::vector<int> recvProcs_;
93 std::vector<int>& eqnNumbers_;
std::vector< int > & getRecvProcs()
int getSendMessageLength(int destProc, int &messageLength)
int getSendMessage(int destProc, std::vector< int > &message)
void setSendPattern(fei::comm_map *pattern)
int processRecvMessage(int srcProc, std::vector< int > &message)
virtual ~RecordMsgHandler()
void setRecvPattern(fei::comm_map *pattern)
std::vector< int > & getSendProcs()