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_tag_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
Component
;
18
class
Request
;
19
class
RequestTag
;
20
40
class
RequestTagBuilder
:
public
RequestCallbackBuilderBase
<RequestTagBuilder> {
41
private
:
42
std::shared_ptr<Component> _endpointOrWorker;
43
std::variant<data::TagSend, data::TagReceive, data::TagReceiveWithHandle>
44
_requestData;
45
46
public
:
55
explicit
RequestTagBuilder
(
56
std::shared_ptr<Component> endpointOrWorker,
57
std::variant<data::TagSend, data::TagReceive, data::TagReceiveWithHandle> requestData);
58
64
[[nodiscard]] std::shared_ptr<RequestTag>
build
();
65
71
operator
std::shared_ptr<RequestTag>();
72
78
operator
std::shared_ptr<Request>();
79
};
80
88
[[nodiscard]]
inline
RequestTagBuilder
requestTagBuilder
(
89
std::shared_ptr<Component> endpointOrWorker,
90
std::variant<data::TagSend, data::TagReceive, data::TagReceiveWithHandle> requestData)
91
{
92
return
RequestTagBuilder
(std::move(endpointOrWorker), std::move(requestData));
93
}
94
95
}
// namespace ucxx
ucxx::Component
A UCXX component class to prevent early destruction of parent object.
Definition
component.h:21
ucxx::RequestCallbackBuilderBase
CRTP base for request builders that support completion callbacks.
Definition
request_builder_base.h:115
ucxx::RequestTagBuilder
Builder class for constructing std::shared_ptr<ucxx::RequestTag> objects.
Definition
request_tag_builder.h:40
ucxx::RequestTagBuilder::build
std::shared_ptr< RequestTag > build()
Build and return the RequestTag.
ucxx::RequestTagBuilder::RequestTagBuilder
RequestTagBuilder(std::shared_ptr< Component > endpointOrWorker, std::variant< data::TagSend, data::TagReceive, data::TagReceiveWithHandle > requestData)
Constructor for RequestTagBuilder with required parameters.
ucxx::RequestTag
Send or receive a message with the UCX Tag API.
Definition
request_tag.h:25
ucxx::Request
Base type for a UCXX transfer request.
Definition
request.h:39
ucxx
Definition
address.h:16
ucxx::requestTagBuilder
RequestTagBuilder requestTagBuilder(std::shared_ptr< Component > endpointOrWorker, std::variant< data::TagSend, data::TagReceive, data::TagReceiveWithHandle > requestData)
Create a RequestTagBuilder for constructing a shared_ptr<ucxx::RequestTag>.
Definition
request_tag_builder.h:88
Generated by
1.18.0