20 MutableSpan<std::optional<ValueUsage>> input_usages,
26 input_usages_(input_usages),
27 output_usages_(output_usages),
28 set_outputs_(set_outputs)
34 return inputs_[index].get();
39 void *value = inputs_[index].get();
40 if (value ==
nullptr) {
48 return outputs_[index].get();
53 set_outputs_[index] =
true;
58 return set_outputs_[index];
63 return output_usages_[index];
86 bool &multi_threading_enabled)
87 :
Params(
fn, multi_threading_enabled),
88 base_params_(base_params),
89 input_map_(input_map),
90 output_map_(output_map),
91 multi_threading_enabled_(multi_threading_enabled)
97 return base_params_.try_get_input_data_ptr(input_map_[index]);
102 return base_params_.try_get_input_data_ptr_or_request(input_map_[index]);
107 return base_params_.get_output_data_ptr(output_map_[index]);
112 base_params_.output_set(output_map_[index]);
117 return base_params_.output_was_set(output_map_[index]);
122 return base_params_.get_output_usage(output_map_[index]);
127 base_params_.set_input_unused(input_map_[index]);
132 if (multi_threading_enabled_) {
135 if (base_params_.try_enable_multi_threading()) {
136 multi_threading_enabled_ =
true;
void set_input_unused_impl(const int index) override
BasicParams(const LazyFunction &fn, Span< GMutablePointer > inputs, Span< GMutablePointer > outputs, MutableSpan< std::optional< ValueUsage > > input_usages, Span< ValueUsage > output_usages, MutableSpan< bool > set_outputs)
void * get_output_data_ptr_impl(const int index) override
void * try_get_input_data_ptr_or_request_impl(const int index) override
ValueUsage get_output_usage_impl(const int index) const override
bool try_enable_multi_threading_impl() override
bool output_was_set_impl(const int index) const override
void * try_get_input_data_ptr_impl(const int index) const override
void output_set_impl(const int index) override
Params(const LazyFunction &fn, bool allow_multi_threading_initially)
void output_set_impl(const int index) override
void * get_output_data_ptr_impl(const int index) override
void * try_get_input_data_ptr_impl(const int index) const override
bool try_enable_multi_threading_impl() override
RemappedParams(const LazyFunction &fn, Params &base_params, Span< int > input_map, Span< int > output_map, bool &multi_threading_enabled)
bool output_was_set_impl(const int index) const override
ValueUsage get_output_usage_impl(const int index) const override
void set_input_unused_impl(const int index) override
void * try_get_input_data_ptr_or_request_impl(const int index) override