Loading...
Searching...
No Matches
inflight_requests.h
1
5#pragma once
6
7#include <memory>
8#include <mutex>
9#include <unordered_set>
10#include <vector>
11
12namespace ucxx {
13
14class Request;
15
24 std::vector<std::shared_ptr<Request>> inflight{};
25 std::vector<std::shared_ptr<Request>> canceling{};
26};
27
38 private:
39 std::unordered_set<std::shared_ptr<Request>> _inflight{};
40 std::unordered_set<std::shared_ptr<Request>> _canceling{};
41
42 std::mutex _mutex{};
43
44 public:
48 InflightRequests() = default;
49
50 InflightRequests(const InflightRequests&) = delete;
51 InflightRequests& operator=(InflightRequests const&) = delete;
53 InflightRequests& operator=(InflightRequests&& o) = delete;
54
61
67 [[nodiscard]] size_t size();
68
74 void insert(const std::shared_ptr<Request>& request);
75
85 void merge(TrackedRequests&& trackedRequests);
86
96 void remove(const std::shared_ptr<Request>& request);
97
106 size_t cancelAll();
107
117 [[nodiscard]] TrackedRequests release();
118
129 [[nodiscard]] size_t getCancelingSize();
130};
131
132} // namespace ucxx
TrackedRequests release()
Releases the internally-tracked containers.
size_t cancelAll()
Issue cancelation of all inflight requests and clear the internal container.
InflightRequests()=default
Default constructor.
void insert(const std::shared_ptr< Request > &request)
Insert an inflight request into the container.
size_t size()
Query the number of pending inflight requests.
size_t getCancelingSize()
Get count of requests in process of cancelation.
void merge(TrackedRequests &&trackedRequests)
Merge containers of inflight requests with the internal containers.
void remove(const std::shared_ptr< Request > &request)
Remove an inflight request from the internal container.
~InflightRequests()
Destructor.
Base type for a UCXX transfer request.
Definition request.h:39
Definition address.h:16
Container for transferring tracked requests between InflightRequests instances.
Definition inflight_requests.h:23
std::vector< std::shared_ptr< Request > > inflight
Valid requests awaiting completion.
Definition inflight_requests.h:24
std::vector< std::shared_ptr< Request > > canceling
Requests scheduled for cancelation.
Definition inflight_requests.h:25