9 #ifndef FAIR_MQ_OFI_TRANSPORTFACTORY_H 10 #define FAIR_MQ_OFI_TRANSPORTFACTORY_H 12 #include <FairMQTransportFactory.h> 13 #include <fairmq/ProgOptions.h> 14 #include <fairmq/ofi/Context.h> 39 auto CreateMessage(
const std::size_t size) -> MessagePtr
override;
40 auto CreateMessage(
void* data,
const std::size_t size, fairmq_free_fn* ffn,
void* hint =
nullptr) -> MessagePtr
override;
41 auto CreateMessage(UnmanagedRegionPtr& region,
void* data,
const std::size_t size,
void* hint =
nullptr) -> MessagePtr
override;
43 auto CreateSocket(
const std::string& type,
const std::string& name) -> SocketPtr
override;
45 auto CreatePoller(
const std::vector<FairMQChannel>& channels)
const -> PollerPtr
override;
46 auto CreatePoller(
const std::vector<FairMQChannel*>& channels)
const -> PollerPtr
override;
47 auto CreatePoller(
const std::unordered_map<std::string, std::vector<FairMQChannel>>& channelsMap,
const std::vector<std::string>& channelList)
const -> PollerPtr
override;
49 auto CreateUnmanagedRegion(
const size_t size, RegionCallback callback =
nullptr,
const std::string& path =
"",
int flags = 0)
const -> UnmanagedRegionPtr
override;
50 auto CreateUnmanagedRegion(
const size_t size, int64_t userFlags, RegionCallback callback =
nullptr,
const std::string& path =
"",
int flags = 0)
const -> UnmanagedRegionPtr
override;
52 void SubscribeToRegionEvents(RegionEventCallback )
override { LOG(error) <<
"SubscribeToRegionEvents not yet implemented for OFI"; }
54 std::vector<FairMQRegionInfo> GetRegionInfo()
override { LOG(error) <<
"GetRegionInfo not yet implemented for OFI, returning empty vector";
return std::vector<FairMQRegionInfo>(); }
56 auto GetType()
const -> Transport
override;
58 void Interrupt()
override { fContext.Interrupt(); }
59 void Resume()
override { fContext.Resume(); }
60 void Reset()
override { fContext.Reset(); }
64 asiofi::allocated_pool_resource fMemoryResource;
Transport-wide context.
Definition: Context.h:56
auto CreateSocket(const std::string &type, const std::string &name) -> SocketPtr override
Create a socket.
auto CreateMessage() -> MessagePtr override
Create empty FairMQMessage.
Definition: TransportFactory.cxx:39
void SubscribeToRegionEvents(RegionEventCallback) override
Subscribe to region events (creation, destruction, ...)
Definition: TransportFactory.h:52
Definition: FairMQTransportFactory.h:30
auto GetType() const -> Transport override
Get transport type.
Definition: TransportFactory.cxx:98
Definition: ProgOptions.h:36
FairMQ transport factory for the ofi transport.
Definition: TransportFactory.h:31
auto CreatePoller(const std::vector< FairMQChannel > &channels) const -> PollerPtr override
Create a poller for a single channel (all subchannels)
void UnsubscribeFromRegionEvents() override
Unsubscribe from region events.
Definition: TransportFactory.h:53
auto CreateUnmanagedRegion(const size_t size, RegionCallback callback=nullptr, const std::string &path="", int flags=0) const -> UnmanagedRegionPtr override
Create new UnmanagedRegion.
Definition: TransportFactory.cxx:88
Tools for interfacing containers to the transport via polymorphic allocators.
Definition: DeviceRunner.h:23