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_stream_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
RequestStream
;
20
38
class
RequestStreamBuilder
:
public
RequestBuilderBase
<RequestStreamBuilder> {
39
private
:
40
std::shared_ptr<Endpoint> _endpoint;
41
std::variant<data::StreamSend, data::StreamReceive>
42
_requestData;
43
44
public
:
52
explicit
RequestStreamBuilder
(std::shared_ptr<Endpoint> endpoint,
53
std::variant<data::StreamSend, data::StreamReceive> requestData);
54
60
[[nodiscard]] std::shared_ptr<RequestStream>
build
();
61
67
operator
std::shared_ptr<RequestStream>();
68
74
operator
std::shared_ptr<Request>();
75
};
76
84
[[nodiscard]]
inline
RequestStreamBuilder
requestStreamBuilder
(
85
std::shared_ptr<Endpoint> endpoint,
86
std::variant<data::StreamSend, data::StreamReceive> requestData)
87
{
88
return
RequestStreamBuilder
(std::move(endpoint), std::move(requestData));
89
}
90
91
}
// namespace ucxx
ucxx::Endpoint
Component encapsulating a UCP endpoint.
Definition
endpoint.h:69
ucxx::RequestBuilderBase< RequestStreamBuilder >::RequestBuilderBase
RequestBuilderBase()=default
ucxx::RequestStreamBuilder
Builder class for constructing std::shared_ptr<ucxx::RequestStream> objects.
Definition
request_stream_builder.h:38
ucxx::RequestStreamBuilder::build
std::shared_ptr< RequestStream > build()
Build and return the RequestStream.
ucxx::RequestStreamBuilder::RequestStreamBuilder
RequestStreamBuilder(std::shared_ptr< Endpoint > endpoint, std::variant< data::StreamSend, data::StreamReceive > requestData)
Constructor for RequestStreamBuilder with required parameters.
ucxx::RequestStream
Send or receive a message with the UCX Stream API.
Definition
request_stream.h:25
ucxx::Request
Base type for a UCXX transfer request.
Definition
request.h:39
ucxx
Definition
address.h:16
ucxx::requestStreamBuilder
RequestStreamBuilder requestStreamBuilder(std::shared_ptr< Endpoint > endpoint, std::variant< data::StreamSend, data::StreamReceive > requestData)
Create a RequestStreamBuilder for constructing a shared_ptr<ucxx::RequestStream>.
Definition
request_stream_builder.h:84
Generated by
1.18.0