9 #ifndef FAIR_MQ_SHMEM_TRANSPORTFACTORY_H_ 10 #define FAIR_MQ_SHMEM_TRANSPORTFACTORY_H_ 17 #include "UnmanagedRegion.h" 19 #include <FairMQTransportFactory.h> 20 #include <fairmq/ProgOptions.h> 43 MessagePtr
CreateMessage(
void* data,
const size_t size, fairmq_free_fn* ffn,
void* hint =
nullptr)
override;
44 MessagePtr
CreateMessage(UnmanagedRegionPtr& region,
void* data,
const size_t size,
void* hint = 0)
override;
46 SocketPtr
CreateSocket(
const std::string& type,
const std::string& name)
override;
48 PollerPtr
CreatePoller(
const std::vector<FairMQChannel>& channels)
const override;
49 PollerPtr
CreatePoller(
const std::vector<FairMQChannel*>& channels)
const override;
50 PollerPtr
CreatePoller(
const std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap,
const std::vector<std::string>& channelList)
const override;
52 UnmanagedRegionPtr
CreateUnmanagedRegion(
const size_t size, RegionCallback callback =
nullptr,
const std::string& path =
"",
int flags = 0)
const override;
53 UnmanagedRegionPtr
CreateUnmanagedRegion(
const size_t size, int64_t userFlags, RegionCallback callback =
nullptr,
const std::string& path =
"",
int flags = 0)
const override;
57 std::vector<fair::mq::RegionInfo> GetRegionInfo()
override;
59 Transport
GetType()
const override;
61 void Interrupt()
override { fManager->Interrupt(); }
62 void Resume()
override { fManager->Resume(); }
63 void Reset()
override;
65 void IncrementMsgCounter() { ++fMsgCounter; }
66 void DecrementMsgCounter() { --fMsgCounter; }
71 void SendHeartbeats();
73 static Transport fTransportType;
74 std::string fDeviceId;
77 std::unique_ptr<Manager> fManager;
78 std::thread fHeartbeatThread;
79 std::atomic<bool> fSendHeartbeats;
80 std::atomic<int32_t> fMsgCounter;
PollerPtr CreatePoller(const std::vector< FairMQChannel > &channels) const override
Create a poller for a single channel (all subchannels)
SocketPtr CreateSocket(const std::string &type, const std::string &name) override
Create a socket.
Definition: FairMQTransportFactory.h:30
UnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, RegionCallback callback=nullptr, const std::string &path="", int flags=0) const override
Create new UnmanagedRegion.
Definition: TransportFactory.cxx:162
MessagePtr CreateMessage() override
Create empty FairMQMessage.
Definition: TransportFactory.cxx:121
Definition: ProgOptions.h:36
Definition: TransportFactory.h:34
void UnsubscribeFromRegionEvents() override
Unsubscribe from region events.
Definition: TransportFactory.cxx:177
Tools for interfacing containers to the transport via polymorphic allocators.
Definition: DeviceRunner.h:23
Transport GetType() const override
Get transport type.
Definition: TransportFactory.cxx:187
void SubscribeToRegionEvents(RegionEventCallback callback) override
Subscribe to region events (creation, destruction, ...)
Definition: TransportFactory.cxx:172