Home
libucxx
libucxx
ucxx
nightly (0.53)
nightly (0.53)
stable (0.52)
legacy (0.51)
Toggle main menu visibility
Loading...
Searching...
No Matches
include
ucxx
inflight_requests.h
1
5
#pragma once
6
7
#include <memory>
8
#include <mutex>
9
#include <unordered_set>
10
#include <vector>
11
12
namespace
ucxx
{
13
14
class
Request
;
15
23
struct
TrackedRequests
{
24
std::vector<std::shared_ptr<Request>>
inflight
{};
25
std::vector<std::shared_ptr<Request>>
canceling
{};
26
};
27
37
class
InflightRequests
{
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
;
52
InflightRequests
(
InflightRequests
&& o) =
delete
;
53
InflightRequests
& operator=(
InflightRequests
&& o) =
delete
;
54
60
~InflightRequests
();
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
ucxx::InflightRequests::release
TrackedRequests release()
Releases the internally-tracked containers.
ucxx::InflightRequests::cancelAll
size_t cancelAll()
Issue cancelation of all inflight requests and clear the internal container.
ucxx::InflightRequests::InflightRequests
InflightRequests()=default
Default constructor.
ucxx::InflightRequests::insert
void insert(const std::shared_ptr< Request > &request)
Insert an inflight request into the container.
ucxx::InflightRequests::size
size_t size()
Query the number of pending inflight requests.
ucxx::InflightRequests::getCancelingSize
size_t getCancelingSize()
Get count of requests in process of cancelation.
ucxx::InflightRequests::merge
void merge(TrackedRequests &&trackedRequests)
Merge containers of inflight requests with the internal containers.
ucxx::InflightRequests::remove
void remove(const std::shared_ptr< Request > &request)
Remove an inflight request from the internal container.
ucxx::InflightRequests::~InflightRequests
~InflightRequests()
Destructor.
ucxx::Request
Base type for a UCXX transfer request.
Definition
request.h:39
ucxx
Definition
address.h:16
ucxx::TrackedRequests
Container for transferring tracked requests between InflightRequests instances.
Definition
inflight_requests.h:23
ucxx::TrackedRequests::inflight
std::vector< std::shared_ptr< Request > > inflight
Valid requests awaiting completion.
Definition
inflight_requests.h:24
ucxx::TrackedRequests::canceling
std::vector< std::shared_ptr< Request > > canceling
Requests scheduled for cancelation.
Definition
inflight_requests.h:25
Generated by
1.18.0