Home
libucxx
libucxx
ucxx
nightly (0.53)
nightly (0.53)
stable (0.52)
legacy (0.51)
Toggle main menu visibility
Loading...
Searching...
No Matches
include
ucxx
request_mem_builder.h
1
5
#pragma once
6
7
#include <memory>
8
#include <utility>
9
#include <variant>
10
11
#include <ucxx/request_builder_base.h>
12
#include <ucxx/request_data.h>
13
14
namespace
ucxx
{
15
16
// Forward declarations
17
class
Endpoint
;
18
class
Request
;
19
class
RequestMem
;
20
40
class
RequestMemBuilder
:
public
RequestCallbackBuilderBase
<RequestMemBuilder> {
41
private
:
42
std::shared_ptr<Endpoint> _endpoint;
43
std::variant<data::MemPut, data::MemGet> _requestData;
44
uint64_t _remoteAddressOffset{0};
45
46
public
:
54
explicit
RequestMemBuilder
(std::shared_ptr<Endpoint> endpoint,
55
std::variant<data::MemPut, data::MemGet> requestData);
56
63
RequestMemBuilder
&
remoteAddressOffset
(uint64_t offset) &;
64
71
RequestMemBuilder
&&
remoteAddressOffset
(uint64_t offset) &&;
72
78
[[nodiscard]] std::shared_ptr<RequestMem>
build
();
79
85
operator
std::shared_ptr<RequestMem>();
86
92
operator
std::shared_ptr<Request>();
93
};
94
102
[[nodiscard]]
inline
RequestMemBuilder
requestMemBuilder
(
103
std::shared_ptr<Endpoint> endpoint, std::variant<data::MemPut, data::MemGet> requestData)
104
{
105
return
RequestMemBuilder
(std::move(endpoint), std::move(requestData));
106
}
107
108
}
// namespace ucxx
ucxx::Endpoint
Component encapsulating a UCP endpoint.
Definition
endpoint.h:69
ucxx::RequestCallbackBuilderBase
CRTP base for request builders that support completion callbacks.
Definition
request_builder_base.h:115
ucxx::RequestMemBuilder
Builder class for constructing std::shared_ptr<ucxx::RequestMem> objects.
Definition
request_mem_builder.h:40
ucxx::RequestMemBuilder::remoteAddressOffset
RequestMemBuilder & remoteAddressOffset(uint64_t offset) &
Set the offset from the remote base address.
ucxx::RequestMemBuilder::RequestMemBuilder
RequestMemBuilder(std::shared_ptr< Endpoint > endpoint, std::variant< data::MemPut, data::MemGet > requestData)
Constructor for RequestMemBuilder with required parameters.
ucxx::RequestMemBuilder::remoteAddressOffset
RequestMemBuilder && remoteAddressOffset(uint64_t offset) &&
Set the offset from the remote base address on a temporary builder.
ucxx::RequestMemBuilder::build
std::shared_ptr< RequestMem > build()
Build and return the RequestMem.
ucxx::RequestMem
Send or receive a message with the UCX RMA API.
Definition
request_mem.h:31
ucxx::Request
Base type for a UCXX transfer request.
Definition
request.h:39
ucxx
Definition
address.h:16
ucxx::requestMemBuilder
RequestMemBuilder requestMemBuilder(std::shared_ptr< Endpoint > endpoint, std::variant< data::MemPut, data::MemGet > requestData)
Create a RequestMemBuilder for constructing a shared_ptr<ucxx::RequestMem>.
Definition
request_mem_builder.h:102
Generated by
1.18.0