|
|
|||
File indexing completed on 2026-07-26 08:22:12
0001 /** TRACCC library, part of the ACTS project (R&D line) 0002 * 0003 * (c) 2022 CERN for the benefit of the ACTS project 0004 * 0005 * Mozilla Public License Version 2.0 0006 */ 0007 0008 #pragma once 0009 0010 namespace traccc::sycl { 0011 0012 /// Wrapper class for @c sycl::queue 0013 /// 0014 /// It is necessary for passing around SYCL queue objects in code that should 0015 /// not be directly exposed to the SYCL headers. 0016 /// 0017 /// Note that unlike @c vecmem::sycl::queue_wrapper, this type can not own a 0018 /// queue of its own. It can only view a queue that is owned by "somebody else". 0019 /// 0020 class queue_wrapper { 0021 public: 0022 /// Wrap an existing @c sycl::queue object, without taking ownership 0023 queue_wrapper(void* queue); 0024 0025 /// Copy constructor 0026 queue_wrapper(const queue_wrapper& parent) = default; 0027 /// Move constructor 0028 queue_wrapper(queue_wrapper&& parent) = default; 0029 0030 /// Copy assignment 0031 queue_wrapper& operator=(const queue_wrapper& rhs) = default; 0032 /// Move assignment 0033 queue_wrapper& operator=(queue_wrapper&& rhs) = default; 0034 0035 /// Access a typeless pointer to the managed @c sycl::queue object 0036 void* queue(); 0037 /// Access a typeless pointer to the managed @c sycl::queue object 0038 const void* queue() const; 0039 0040 private: 0041 /// Bare pointer to the wrapped @c sycl::queue object 0042 void* m_queue; 0043 0044 }; // class queue_wrapper 0045 0046 } // namespace traccc::sycl
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|