36 static const uint8_t num_request_types = 3;
    47     std::vector<std::unique_ptr<resources>> 
res_vec;
    51     std::atomic<bool> thread_shutdown{
false};
    53     uint64_t getOffsetSeqNum(
REQUEST_TYPE type, uint64_t seq_num);
    54     uint64_t getOffsetBuf(
REQUEST_TYPE type, uint64_t seq_num);
    55     uint32_t window_sizes[num_request_types];
    56     uint32_t max_msg_sizes[num_request_types];
    57     uint64_t offsets[num_request_types];
    58     char* probe(uint32_t rank);
    61     uint32_t num_rdma_writes = 0;
    62     void check_failures_loop();
    68     void shutdown_failures_thread();
    69     uint32_t get_node_rank(uint32_t node_id);
    70     uint64_t get_max_p2p_reply_size();
    71     std::optional<std::pair<uint32_t, char*>> probe_all();
    72     void update_incoming_seq_num();
    73     char* get_sendbuffer_ptr(uint32_t rank, 
REQUEST_TYPE type);
    74     void send(uint32_t rank);
 
std::map< REQUEST_TYPE, std::vector< std::atomic< uint64_t > > > outgoing_seq_nums_map
const std::uint32_t num_members
std::thread timeout_thread
bool send(uint16_t group_number, std::shared_ptr< rdma::memory_region > mr, size_t offset, size_t length) __attribute__((warn_unused_result))
std::vector< REQUEST_TYPE > prev_mode
const std::vector< uint32_t > members
std::vector< std::unique_ptr< volatile char[]> > incoming_p2p_buffers
std::vector< std::unique_ptr< resources > > res_vec
std::map< uint32_t, uint32_t > node_id_to_rank
const uint32_t my_node_id
std::vector< std::unique_ptr< volatile char[]> > outgoing_p2p_buffers
uint64_t max_p2p_reply_size
uint64_t max_rpc_reply_size
std::vector< uint32_t > members
uint64_t max_p2p_request_size