12 #include <ucp/api/ucp.h>
14 #include <ucxx/buffer.h>
15 #include <ucxx/endpoint.h>
16 #include <ucxx/future.h>
17 #include <ucxx/request.h>
21 class RequestTagMulti;
31 std::shared_ptr<Request>
request{
nullptr};
33 std::shared_ptr<Buffer>
buffer{
nullptr};
62 size_t _totalFrames{0};
64 _completedRequestsMutex{};
65 size_t _completedRequests{0};
66 ucs_status_t _finalStatus{
100 const std::variant<data::TagMultiSend, data::TagMultiReceive> requestData,
101 const std::string operationName,
102 const bool enablePythonFuture);
175 std::shared_ptr<Endpoint> endpoint,
176 const std::variant<data::TagMultiSend, data::TagMultiReceive> requestData,
177 const bool enablePythonFuture);
Send or receive multiple messages with the UCX Tag API.
Definition: request_tag_multi.h:60
void recvCallback(ucs_status_t status)
Callback to submit request to receive new header or frames.
virtual ~RequestTagMulti()
ucxx::RequestTagMulti destructor.
void populateDelayedSubmission() override
Populate the internal submission dispatcher.
bool _isFilled
Whether the all requests have been posted.
Definition: request_tag_multi.h:71
void cancel() override
Cancel the request.
std::vector< BufferRequestPtr > _bufferRequests
Container of all requests posted.
Definition: request_tag_multi.h:70
friend std::shared_ptr< RequestTagMulti > createRequestTagMulti(std::shared_ptr< Endpoint > endpoint, const std::variant< data::TagMultiSend, data::TagMultiReceive > requestData, const bool enablePythonFuture)
Enqueue a multi-buffer tag send operation.
void markCompleted(ucs_status_t status, RequestCallbackUserData request)
Mark request as completed.
Base type for a UCXX transfer request.
Definition: request.h:38
std::shared_ptr< void > RequestCallbackUserData
Data for the user-defined function provided to the ucxx::Request callback.
Definition: typedefs.h:97
std::shared_ptr< BufferRequest > BufferRequestPtr
Pre-defined type for a pointer to an ucxx::BufferRequest.
Definition: request_tag_multi.h:49
std::shared_ptr< RequestTagMulti > RequestTagMultiPtr
Pre-defined type for a pointer to an ucxx::RequestTagMulti.
Definition: request_tag_multi.h:233
Container for data required by a ucxx::RequestTagMulti.
Definition: request_tag_multi.h:30
std::shared_ptr< Buffer > buffer
Internally allocated buffer to receive a frame.
Definition: request_tag_multi.h:33
std::shared_ptr< std::string > stringBuffer
Serialized Header
Definition: request_tag_multi.h:32
std::shared_ptr< Request > request
The ucxx::RequestTag of a header or frame.
Definition: request_tag_multi.h:31