Class ReceiveBufferManager

Class Documentation

class ReceiveBufferManager

Manages receive buffers for a libfabric endpoint.

In order to receive data, buffers need to be registered as memory regions and posted for receiving data.

Public Functions

ReceiveBufferManager(DomainManager &domain_manager, fid_ep *ep, const ConnectionParametersRecv &conn_params, const fi_info *info, BaseEventLoop *event_loop)

Constructs a ReceiveBufferManager object.

Initializes (registers) the receive buffers for the endpoint, then post them for receiving data. Initialize the retry signal.

Throws:

LibFabricBufferError – in case of a libfabric error

Parameters:
  • domain_manager – The domain manager to use for registration

  • ep – The endpoint to post the buffers to

  • conn_params – The connection parameters for the endpoint

  • info – The network info

  • event_loop – The event loop to use for retrying posting buffers

ReceiveBufferManager(const ReceiveBufferManager&) = delete
ReceiveBufferManager(ReceiveBufferManager&&) = default
ReceiveBufferManager &operator=(const ReceiveBufferManager&) = delete
ReceiveBufferManager &operator=(ReceiveBufferManager&&) = default
~ReceiveBufferManager()

Unregister all buffers.

void post_buffer(Buffer *buf)

Posts a buffer for receiving data.

Is called after a received data have been processed and the buffer is ready to be used again.

Parameters:

buf – A pointer to the buffer to be posted