Loading...
Searching...
No Matches
request_mem.h
1
5#pragma once
6#include <memory>
7#include <string>
8#include <utility>
9
10#include <ucp/api/ucp.h>
11
12#include <ucxx/delayed_submission.h>
13#include <ucxx/request.h>
14#include <ucxx/request_mem_builder.h>
15#include <ucxx/typedefs.h>
16
17namespace ucxx {
18
19class Buffer;
20
21namespace internal {
22class RecvMemMessage;
23} // namespace internal
24
31class RequestMem : public Request {
32 private:
33 friend class internal::RecvMemMessage;
34
35 uint64_t _remote_addr{};
36 ucp_rkey_h _rkey{};
37
64 RequestMem(std::shared_ptr<Endpoint> endpoint,
65 const std::variant<data::MemPut, data::MemGet> requestData,
66 std::string operationName,
67 const bool enablePythonFuture = false,
68 RequestCallbackUserFunction callbackFunction = nullptr,
69 RequestCallbackUserData callbackData = nullptr);
70
71 void populateDelayedSubmissionImpl() override;
72
73 public:
74 // Allow internal construction without exposing factory functions.
75 friend class detail::ConstructorFactory;
76
92 static void memPutCallback(void* request, ucs_status_t status, void* arg);
93
109 static void memGetCallback(void* request, ucs_status_t status, void* arg);
110
119 void request();
120};
121
122} // namespace ucxx
A simple object to simplify managing buffers.
Definition buffer.h:31
void request()
Create and submit a memory get or put request.
static void memPutCallback(void *request, ucs_status_t status, void *arg)
Callback executed by UCX when a memory put request is completed.
static void memGetCallback(void *request, ucs_status_t status, void *arg)
Callback executed by UCX when a memory get request is completed.
Request(std::shared_ptr< Component > endpointOrWorker, const data::RequestData requestData, std::string operationName, const bool enablePythonFuture=false, RequestCallbackUserFunction callbackFunction=nullptr, RequestCallbackUserData callbackData=nullptr)
Protected constructor of an abstract ucxx::Request.
Definition address.h:16
std::function< void(ucs_status_t, std::shared_ptr< void >)> RequestCallbackUserFunction
A user-defined function to execute as part of a ucxx::Request callback.
Definition typedefs.h:97
std::shared_ptr< void > RequestCallbackUserData
Data for the user-defined function provided to the ucxx::Request callback.
Definition typedefs.h:105