9 #ifndef FAIRMQTRANSPORTFACTORYSHM_H_ 10 #define FAIRMQTRANSPORTFACTORYSHM_H_ 12 #include <fairmq/shmem/Manager.h> 13 #include <fairmq/shmem/Common.h> 15 #include "FairMQTransportFactory.h" 16 #include "FairMQMessageSHM.h" 17 #include "FairMQSocketSHM.h" 18 #include "FairMQPollerSHM.h" 19 #include "FairMQUnmanagedRegionSHM.h" 20 #include <options/FairMQProgOptions.h> 22 #include <boost/interprocess/sync/named_mutex.hpp> 38 FairMQMessagePtr
CreateMessage(
void* data,
const size_t size, fairmq_free_fn* ffn,
void* hint =
nullptr)
override;
39 FairMQMessagePtr
CreateMessage(FairMQUnmanagedRegionPtr& region,
void* data,
const size_t size,
void* hint = 0)
override;
41 FairMQSocketPtr
CreateSocket(
const std::string& type,
const std::string& name)
override;
43 FairMQPollerPtr
CreatePoller(
const std::vector<FairMQChannel>& channels)
const override;
44 FairMQPollerPtr
CreatePoller(
const std::vector<FairMQChannel*>& channels)
const override;
45 FairMQPollerPtr
CreatePoller(
const std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap,
const std::vector<std::string>& channelList)
const override;
47 FairMQUnmanagedRegionPtr CreateUnmanagedRegion(
const size_t size, FairMQRegionCallback callback =
nullptr)
const override;
49 fair::mq::Transport
GetType()
const override;
51 void Interrupt()
override { FairMQSocketSHM::Interrupt(); }
52 void Resume()
override { FairMQSocketSHM::Resume(); }
53 void Reset()
override {}
58 void SendHeartbeats();
61 static fair::mq::Transport fTransportType;
62 std::string fDeviceId;
65 std::thread fHeartbeatThread;
66 std::atomic<bool> fSendHeartbeats;
67 std::unique_ptr<boost::interprocess::named_mutex> fShMutex;
69 std::unique_ptr<fair::mq::shmem::Manager> fManager;
fair::mq::Transport GetType() const override
Get transport type.
Definition: FairMQTransportFactorySHM.cxx:313
Definition: FairMQTransportFactorySHM.h:29
Definition: FairMQTransportFactory.h:28
FairMQMessagePtr CreateMessage() override
Create empty FairMQMessage.
Definition: FairMQTransportFactorySHM.cxx:216
FairMQSocketPtr CreateSocket(const std::string &type, const std::string &name) override
Create a socket.
Definition: FairMQTransportFactorySHM.cxx:236
Definition: FairMQProgOptions.h:37
FairMQPollerPtr CreatePoller(const std::vector< FairMQChannel > &channels) const override
Create a poller for a single channel (all subchannels)