Loading...
Searching...
No Matches
request_stream.h
1
5#pragma once
6#include <memory>
7#include <string>
8
9#include <ucp/api/ucp.h>
10
11#include <ucxx/delayed_submission.h>
12#include <ucxx/request.h>
13#include <ucxx/request_data.h>
14#include <ucxx/request_stream_builder.h>
15#include <ucxx/typedefs.h>
16
17namespace ucxx {
18
25class RequestStream : public Request {
26 private:
48 RequestStream(std::shared_ptr<Endpoint> endpoint,
49 const std::variant<data::StreamSend, data::StreamReceive> requestData,
50 std::string operationName,
51 const bool enablePythonFuture = false);
52
53 void populateDelayedSubmissionImpl() override;
54
55 public:
56 // Allow internal construction without exposing factory functions.
57 friend class detail::ConstructorFactory;
58
67 void request();
68
84 void callback(void* request, ucs_status_t status, size_t length);
85
101 static void streamSendCallback(void* request, ucs_status_t status, void* arg);
102
119 static void streamRecvCallback(void* request, ucs_status_t status, size_t length, void* arg);
120};
121
122} // namespace ucxx
void request()
Create and submit a stream request.
static void streamSendCallback(void *request, ucs_status_t status, void *arg)
Callback executed by UCX when a stream send request is completed.
static void streamRecvCallback(void *request, ucs_status_t status, size_t length, void *arg)
Callback executed by UCX when a stream receive request is completed.
void callback(void *request, ucs_status_t status, size_t length)
Implementation of the stream receive request callback.
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