22 template <
typename Builder>
27 : Builder(std::move(builder))
38 #define PXL_CONFIGURED_SETTING(method) \
39 template <typename... Args> \
40 TaskCountConfigured& method(Args&&... args)& \
42 Builder::method(std::forward<Args>(args)...); \
45 template <typename... Args> \
46 TaskCountConfigured&& method(Args&&... args)&& \
48 Builder::method(std::forward<Args>(args)...); \
49 return std::move(*this); \
63 #undef PXL_CONFIGURED_SETTING
65 template <
auto Func,
typename... Args,
typename B = Builder>
66 auto stage(Args&&... args) & -> decltype(std::declval<B&>().
template stage<Func>(std::forward<Args>(args)...))
68 return Builder::template stage<Func>(std::forward<Args>(args)...);
71 template <
auto Func,
typename... Args,
typename B = Builder>
72 auto stage(Args&&... args) && -> decltype(std::declval<B&&>().
template stage<Func>(std::forward<Args>(args)...))
74 return std::move(
static_cast<Builder&
>(*
this)).template stage<Func>(std::forward<Args>(args)...);
77 template <
typename B = Builder>
80 return Builder::stage();
85 template <
typename B = Builder>
86 auto stage() && -> decltype(std::declval<B&&>().takeStageGroup())
88 return std::move(
static_cast<Builder&
>(*
this)).takeStageGroup();
101 template <
typename Builder>
106 : builder_(std::move(builder))
117 builder_.tasks(taskCount);
121 template <
typename... Args>
124 builder_.
reserve(std::forward<Args>(args)...);
128 template <
typename... Args>
131 builder_.
batchSize(std::forward<Args>(args)...);
135 template <
typename... Args>
142 template <
typename... Args>
145 builder_.
locality(std::forward<Args>(args)...);
149 template <
typename... Args>
152 builder_.
onComplete(std::forward<Args>(args)...);
156 template <
typename... Args>
159 builder_.
onMessage(std::forward<Args>(args)...);
163 template <
typename... Args>
166 builder_.
onError(std::forward<Args>(args)...);
170 template <
typename... Args>
173 builder_.
stream(std::forward<Args>(args)...);
177 template <
typename... Args>
Holds a launch request that still needs its task count.
TaskCountRequired & reserve(Args &&... args)
TaskCountRequired & onComplete(Args &&... args)
TaskCountRequired & stream(Args &&... args)
TaskCountRequired(Builder &&builder)
TaskCountRequired & locality(Args &&... args)
TaskCountRequired & batchSize(Args &&... args)
TaskCountRequired & onMessage(Args &&... args)
TaskCountRequired(TaskCountRequired &&) noexcept=default
TaskCountRequired & enableProfile(Args &&... args)
TaskCountRequired & onError(Args &&... args)
TaskCountRequired & clusterBitmap(Args &&... args)
#define PXL_CONFIGURED_SETTING(method)