CMS 3D CMS Logo

EDMetadataSentry.h
Go to the documentation of this file.
1 #ifndef HeterogeneousCore_AlpakaCore_interface_alpaka_EDMetadataSentry_h
2 #define HeterogeneousCore_AlpakaCore_interface_alpaka_EDMetadataSentry_h
3 
6 
8  namespace detail {
15  public:
16  // For normal module
18 
19  // For ExternalWork-module's produce()
20  EDMetadataSentry(std::shared_ptr<EDMetadata> metadata) : metadata_(std::move(metadata)) {}
21 
22  EDMetadataSentry(EDMetadataSentry const&) = delete;
26 
27  std::shared_ptr<EDMetadata> metadata() { return metadata_; }
28 
29  // true if asynchronous work was (possibly) launched
30  void finish(bool launchedAsyncWork);
31 
32  private:
33  std::shared_ptr<EDMetadata> metadata_;
34  };
35  } // namespace detail
36 } // namespace ALPAKA_ACCELERATOR_NAMESPACE
37 
38 #endif
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
EDMetadataSentry(std::shared_ptr< EDMetadata > metadata)
EDMetadataSentry & operator=(EDMetadataSentry const &)=delete
def move(src, dest)
Definition: eostools.py:511