9 #ifndef FAIR_MQ_OFI_POLLER_H
10 #define FAIR_MQ_OFI_POLLER_H
12 #include <FairMQChannel.h>
13 #include <FairMQPoller.h>
14 #include <FairMQSocket.h>
17 #include <unordered_map>
21 namespace fair::mq::ofi
24 class TransportFactory;
35 friend class TransportFactory;
38 Poller(
const std::vector<FairMQChannel>& channels);
39 Poller(
const std::vector<const FairMQChannel*>& channels);
40 Poller(
const std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap,
const std::vector<std::string>& channelList);
45 auto SetItemEvents(zmq_pollitem_t& item,
const int type) -> void;
47 auto Poll(
const int timeout) ->
void override;
48 auto CheckInput(
const int index) ->
bool override;
49 auto CheckOutput(
const int index) ->
bool override;
50 auto CheckInput(
const std::string& channelKey,
const int index) ->
bool override;
51 auto CheckOutput(
const std::string& channelKey,
const int index) ->
bool override;
56 zmq_pollitem_t* fItems;
59 std::unordered_map<std::string, int> fOffsetMap;