CMS 3D CMS Logo

EDMetadataAcquireSentry.h
Go to the documentation of this file.
1 #ifndef HeterogeneousCore_AlpakaCore_interface_alpaka_EDMetadataAcquireSentry_h
2 #define HeterogeneousCore_AlpakaCore_interface_alpaka_EDMetadataAcquireSentry_h
3 
7 
9  namespace detail {
16  public:
17  // TODO: WaitingTaskWithArenaHolder not really needed for host synchronous case
18  // Constructor overload to be called from acquire()
20 
21  // Constructor overload to be called from registerTransformAsync()
22  EDMetadataAcquireSentry(Device const& device, edm::WaitingTaskWithArenaHolder holder);
23 
28 
29  std::shared_ptr<EDMetadata> metadata() { return metadata_; }
30 
31 #ifdef ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED
32  // all synchronous backends
33  std::shared_ptr<EDMetadata> finish() { return std::move(metadata_); }
34 #else
35  // all asynchronous backends
36  std::shared_ptr<EDMetadata> finish();
37 #endif
38 
39  private:
40  std::shared_ptr<EDMetadata> metadata_;
41 
43  };
44  } // namespace detail
45 } // namespace ALPAKA_ACCELERATOR_NAMESPACE
46 
47 #endif
EDMetadataAcquireSentry(edm::StreamID stream, edm::WaitingTaskWithArenaHolder holder)
EDMetadataAcquireSentry & operator=(EDMetadataAcquireSentry const &)=delete
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
def move(src, dest)
Definition: eostools.py:511