Class DomainManager

Class Documentation

class DomainManager

Creates fabric, listen domain, and send domain.

Public Functions

explicit DomainManager(const NetworkConfig &config, const EndPointAddress &address, std::uint64_t flags)

Constructs a DomainManager object.

Gets constructed the first time a connection is requested to detect what technology can be used.

If a listen endpoint is passed the flag need to be set to FI_SOURCE.

Warning

If an endpoint is passed which does not support RDMA, all following connections will be unable to use that.

Throws:

LibfabricDomainError – in case of a libfabric error

Parameters:
  • config – The network config including mode and shared receive buffers

  • address – The endpoint address

  • flags – The flags (nothing of FI_SOURCE for listen endpoints)

inline const fid_fabric *get_fabric() const

Get the fabric.

Returns:

A constant pointer for const objects, non const otherwise

inline fid_fabric *get_fabric()
inline const fid_domain *get_domain() const

Get the domain.

Returns:

A constant reference for const objects, non const otherwise

inline fid_domain *get_domain()
inline const fi_info *get_info() const

Get the fabric info.

Returns:

A constant reference for const objects

std::uint64_t get_next_mr_key()

Get the next memory region key.

Some providers need unique memory region keys for each buffer. This key is not to be confused with the key provided on the send_complete callback.

Returns:

The next memory region key