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> 37 FairMQMessagePtr
CreateMessage(
const size_t size)
const override;
38 FairMQMessagePtr
CreateMessage(
void* data,
const size_t size, fairmq_free_fn* ffn,
void* hint =
nullptr)
const override;
39 FairMQMessagePtr
CreateMessage(FairMQUnmanagedRegionPtr& region,
void* data,
const size_t size,
void* hint = 0)
const override;
41 FairMQSocketPtr
CreateSocket(
const std::string& type,
const std::string& name)
const override;
43 FairMQPollerPtr
CreatePoller(
const std::vector<FairMQChannel>& channels)
const override;
44 FairMQPollerPtr
CreatePoller(
const std::vector<const 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;
48 FairMQUnmanagedRegionPtr CreateUnmanagedRegion(
const size_t size, FairMQRegionCallback callback =
nullptr)
const override;
50 fair::mq::Transport
GetType()
const override;
52 void Interrupt()
override { FairMQSocketSHM::Interrupt(); }
53 void Resume()
override { FairMQSocketSHM::Resume(); }
58 void SendHeartbeats();
61 static fair::mq::Transport fTransportType;
62 std::string fDeviceId;
63 std::string fSessionName;
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;
FairMQSocketPtr CreateSocket(const std::string &type, const std::string &name) const override
Create a socket.
Definition: FairMQTransportFactorySHM.cxx:237
fair::mq::Transport GetType() const override
Get transport type.
Definition: FairMQTransportFactorySHM.cxx:319
Definition: FairMQTransportFactorySHM.h:29
Definition: FairMQTransportFactory.h:27
FairMQMessagePtr CreateMessage() const override
Create empty FairMQMessage.
Definition: FairMQTransportFactorySHM.cxx:217
Definition: FairMQProgOptions.h:41
Definition: FairMQSocket.h:18
FairMQPollerPtr CreatePoller(const std::vector< FairMQChannel > &channels) const override
Create a poller for a single channel (all subchannels)