21namespace sham::details {
35 if (!buffer.has_value()) {
38 return buffer.value().get().get_read_access(depends_list);
54 if (!buffer.has_value()) {
57 return buffer.value().get().get_write_access(depends_list);
68 if (buffer.has_value()) {
69 buffer.value().get().complete_event_state(e);
75 return o.get_read_access(depends_list);
80 return o.get_write_access(depends_list);
83 inline auto complete_event_state(Obj &o, sycl::event e) {
84 return o.complete_event_state(e);
88 inline auto get_read_access(std::reference_wrapper<Obj> &o, sham::EventList &depends_list) {
89 return o.get().get_read_access(depends_list);
93 inline auto get_write_access(std::reference_wrapper<Obj> &o, sham::EventList &depends_list) {
94 return o.get().get_write_access(depends_list);
97 inline auto complete_event_state(std::reference_wrapper<Obj> &o, sycl::event e) {
98 return o.get().complete_event_state(e);
const T * read_access_optional(shambase::opt_ref< sham::DeviceBuffer< T > > buffer, sham::EventList &depends_list)
Get a pointer to the data of an optional device buffer, for reading.
void complete_state_optional(sycl::event e, shambase::opt_ref< T > buffer)
Complete the event state of an optional device buffer.
T * write_access_optional(shambase::opt_ref< sham::DeviceBuffer< T > > buffer, sham::EventList &depends_list)
Get a pointer to the data of an optional device buffer, for writing.
A buffer allocated in USM (Unified Shared Memory).
Class to manage a list of SYCL events.
std::optional< std::reference_wrapper< T > > opt_ref
Optional reference wrapper.