Loading...
Searching...
No Matches
request_flush_builder.h
1
5#pragma once
6
7#include <memory>
8#include <utility>
9
10#include <ucxx/request_builder_base.h>
11#include <ucxx/request_data.h>
12
13namespace ucxx {
14
15// Forward declarations
16class Component;
17class Request;
18class RequestFlush;
19
39class RequestFlushBuilder : public RequestCallbackBuilderBase<RequestFlushBuilder> {
40 private:
41 std::shared_ptr<Component> _endpointOrWorker;
42 data::Flush _requestData;
43
44 public:
52 explicit RequestFlushBuilder(std::shared_ptr<Component> endpointOrWorker,
53 data::Flush requestData);
54
60 [[nodiscard]] std::shared_ptr<RequestFlush> build();
61
67 operator std::shared_ptr<RequestFlush>();
68
74 operator std::shared_ptr<Request>();
75};
76
85 std::shared_ptr<Component> endpointOrWorker, data::Flush requestData)
86{
87 return RequestFlushBuilder(std::move(endpointOrWorker), std::move(requestData));
88}
89
90} // namespace ucxx
A UCXX component class to prevent early destruction of parent object.
Definition component.h:21
CRTP base for request builders that support completion callbacks.
Definition request_builder_base.h:115
Builder class for constructing std::shared_ptr<ucxx::RequestFlush> objects.
Definition request_flush_builder.h:39
RequestFlushBuilder(std::shared_ptr< Component > endpointOrWorker, data::Flush requestData)
Constructor for RequestFlushBuilder with required parameters.
std::shared_ptr< RequestFlush > build()
Build and return the RequestFlush.
Flush a UCP endpoint or worker.
Definition request_flush.h:25
Base type for a UCXX transfer request.
Definition request.h:39
Data for a flush operation.
Definition request_data.h:119
Definition address.h:16
RequestFlushBuilder requestFlushBuilder(std::shared_ptr< Component > endpointOrWorker, data::Flush requestData)
Create a RequestFlushBuilder for constructing a shared_ptr<ucxx::RequestFlush>.
Definition request_flush_builder.h:84