File indexing completed on 2024-12-30 23:27:56
0001 #ifndef HeterogeneousCore_AlpakaCore_interface_alpaka_EDMetadataSentry_h
0002 #define HeterogeneousCore_AlpakaCore_interface_alpaka_EDMetadataSentry_h
0003
0004 #include "FWCore/Utilities/interface/StreamID.h"
0005 #include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadata.h"
0006
0007 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0008 namespace detail {
0009
0010
0011
0012
0013
0014 class EDMetadataSentry {
0015 public:
0016
0017 EDMetadataSentry(edm::StreamID stream, bool synchronize);
0018
0019
0020 EDMetadataSentry(std::shared_ptr<EDMetadata> metadata, bool synchronize)
0021 : metadata_(std::move(metadata)), synchronize_(synchronize) {}
0022
0023 EDMetadataSentry(EDMetadataSentry const&) = delete;
0024 EDMetadataSentry& operator=(EDMetadataSentry const&) = delete;
0025 EDMetadataSentry(EDMetadataSentry&&) = delete;
0026 EDMetadataSentry& operator=(EDMetadataSentry&&) = delete;
0027
0028 std::shared_ptr<EDMetadata> metadata() { return metadata_; }
0029
0030
0031 void finish(bool launchedAsyncWork);
0032
0033 private:
0034 std::shared_ptr<EDMetadata> metadata_;
0035 bool const synchronize_;
0036 };
0037 }
0038 }
0039
0040 #endif