10 #include <unordered_map>
12 #include <ucp/api/ucp.h>
14 #include <ucxx/typedefs.h>
19 class InflightRequests;
37 ucp_ep_h
_ep{
nullptr};
62 std::shared_ptr<RequestAm> request,
63 std::shared_ptr<Buffer> buffer,
85 void callback(
void* request, ucs_status_t status);
88 typedef std::unordered_map<ucp_ep_h, std::queue<std::shared_ptr<RequestAm>>> AmPoolType;
89 typedef std::unordered_map<RequestAm*, std::shared_ptr<RecvAmMessage>> RecvAmMessageMapType;
91 typedef std::unordered_map<AmReceiverCallbackIdType, AmReceiverCallbackType>
92 AmReceiverCallbackMapType;
93 typedef std::unordered_map<AmReceiverCallbackOwnerType, AmReceiverCallbackMapType>
94 AmReceiverCallbackOwnerMapType;
111 AmReceiverCallbackOwnerMapType
115 std::function<void(std::shared_ptr<Request>)>
117 std::unordered_map<ucs_memory_type_t, AmAllocatorType>
Active Message data owned by a ucxx::Worker.
Definition: request_am.h:103
RecvAmMessageMapType _recvAmMessageMap
The active messages waiting to be handled by callback.
Definition: request_am.h:110
AmReceiverCallbackOwnerMapType _receiverCallbacks
Definition: request_am.h:112
AmPoolType _recvPool
The pool of completed receive requests (waiting for user request)
Definition: request_am.h:107
std::unordered_map< ucs_memory_type_t, AmAllocatorType > _allocators
Default and user-defined active message allocators.
Definition: request_am.h:118
std::string _ownerString
The owner string used for logging.
Definition: request_am.h:106
std::weak_ptr< Worker > _worker
The worker to which the Active Message callback belongs.
Definition: request_am.h:105
std::mutex _mutex
Mutex to provide access to pools/maps.
Definition: request_am.h:114
AmPoolType _recvWait
The pool of user receive requests (waiting for message arrival)
Definition: request_am.h:108
std::function< void(std::shared_ptr< Request >)> _registerInflightRequest
Worker function to register inflight requests with.
Definition: request_am.h:116
Handle receiving of a ucxx::RequestAm.
Definition: request_am.h:34
ucp_ep_h _ep
Handle containing address of the reply endpoint.
Definition: request_am.h:37
void callback(void *request, ucs_status_t status)
Execute the ucxx::Request::callback().
RecvAmMessage(internal::AmData *amData, ucp_ep_h ep, std::shared_ptr< RequestAm > request, std::shared_ptr< Buffer > buffer, AmReceiverCallbackType receiverCallback=AmReceiverCallbackType())
Constructor of ucxx::RecvAmMessage.
std::shared_ptr< Buffer > _buffer
Buffer containing the received data.
Definition: request_am.h:40
void setUcpRequest(void *request)
Set the UCP request.
internal::AmData * _amData
Active messages data.
Definition: request_am.h:36
std::shared_ptr< RequestAm > _request
Request which will later be notified/delivered to user.
Definition: request_am.h:38
std::function< void(std::shared_ptr< Request >)> AmReceiverCallbackType
Active Message receiver callback.
Definition: typedefs.h:129