FairMQ  1.2.3
C++ Message Passing Framework
FairMQPollerNN.h
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
15 #ifndef FAIRMQPOLLERNN_H_
16 #define FAIRMQPOLLERNN_H_
17 
18 #include <vector>
19 #include <unordered_map>
20 #include <initializer_list>
21 
22 #include "FairMQPoller.h"
23 #include "FairMQChannel.h"
24 #include "FairMQTransportFactoryNN.h"
25 
26 class FairMQChannel;
27 struct nn_pollfd;
28 
30 {
31  friend class FairMQChannel;
32  friend class FairMQTransportFactoryNN;
33 
34  public:
35  FairMQPollerNN(const std::vector<FairMQChannel>& channels);
36  FairMQPollerNN(const std::vector<const FairMQChannel*>& channels);
37  FairMQPollerNN(const std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap, const std::vector<std::string>& channelList);
38 
39  FairMQPollerNN(const FairMQPollerNN&) = delete;
40  FairMQPollerNN operator=(const FairMQPollerNN&) = delete;
41 
42  void SetItemEvents(nn_pollfd& item, const int type);
43 
44  virtual void Poll(const int timeout);
45  virtual bool CheckInput(const int index);
46  virtual bool CheckOutput(const int index);
47  virtual bool CheckInput(const std::string channelKey, const int index);
48  virtual bool CheckOutput(const std::string channelKey, const int index);
49 
50  virtual ~FairMQPollerNN();
51 
52  private:
53  FairMQPollerNN(const FairMQSocket& cmdSocket, const FairMQSocket& dataSocket);
54 
55  nn_pollfd* fItems;
56  int fNumItems;
57 
58  std::unordered_map<std::string, int> fOffsetMap;
59 };
60 
61 #endif /* FAIRMQPOLLERNN_H_ */
Definition: FairMQChannel.h:24
Definition: FairMQPoller.h:15
Definition: FairMQSocket.h:18
Definition: FairMQTransportFactoryNN.h:22
Definition: FairMQPollerNN.h:29