ATLAS Offline Software
Loading...
Searching...
No Matches
CopyTool.h
Go to the documentation of this file.
1//
2// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3//
4#ifndef ATHCUDASERVICES_COPYTOOL_H
5#define ATHCUDASERVICES_COPYTOOL_H
6
7// Framework include(s).
9
10// AthDevice include(s).
12
13// VecMem include(s).
14#include <vecmem/utils/cuda/copy.hpp>
15
16namespace AthCUDA {
17
19class CopyTool : public extends<AthAlgTool, AthDevice::ICopyTool> {
20
21 public:
22 // Inherit the base class's constructor(s).
23 using extends::extends;
24
27
29 virtual std::shared_ptr<const vecmem::copy> copy(
30 const EventContext& ctx) const override;
31
33
34 private:
36 std::shared_ptr<const vecmem::copy> m_copy{
37 std::make_shared<const vecmem::cuda::copy>()};
38
39}; // class CopyTool
40
41} // namespace AthCUDA
42
43#endif // ATHCUDASERVICES_COPYTOOL_H
Tool providing a synchronous vecmem::copy object for CUDA devices.
Definition CopyTool.h:19
virtual std::shared_ptr< const vecmem::copy > copy(const EventContext &ctx) const override
Get the provided vecmem::copy object.
Definition CopyTool.cxx:10
std::shared_ptr< const vecmem::copy > m_copy
The vecmem::copy object provided by this tool.
Definition CopyTool.h:36
Definition Info.h:14