All Classes Namespaces Functions Variables Typedefs Enumerations Friends
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/typedefs.h>
15 
16 namespace ucxx {
17 
24 class RequestStream : public Request {
25  private:
47  RequestStream(std::shared_ptr<Endpoint> endpoint,
48  const std::variant<data::StreamSend, data::StreamReceive> requestData,
49  const std::string operationName,
50  const bool enablePythonFuture = false);
51 
52  public:
70  friend std::shared_ptr<RequestStream> createRequestStream(
71  std::shared_ptr<Endpoint> endpoint,
72  const std::variant<data::StreamSend, data::StreamReceive> requestData,
73  const bool enablePythonFuture);
74 
75  virtual void populateDelayedSubmission();
76 
85  void request();
86 
102  void callback(void* request, ucs_status_t status, size_t length);
103 
119  static void streamSendCallback(void* request, ucs_status_t status, void* arg);
120 
137  static void streamRecvCallback(void* request, ucs_status_t status, size_t length, void* arg);
138 };
139 
140 } // namespace ucxx
Send or receive a message with the UCX Stream API.
Definition: request_stream.h:24
void request()
Create and submit a stream request.
friend std::shared_ptr< RequestStream > createRequestStream(std::shared_ptr< Endpoint > endpoint, const std::variant< data::StreamSend, data::StreamReceive > requestData, const bool enablePythonFuture)
Constructor for std::shared_ptr<ucxx::RequestStream>.
virtual void populateDelayedSubmission()
Populate the internal submission dispatcher.
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.
Base type for a UCXX transfer request.
Definition: request.h:38
Definition: address.h:15