ATLAS Offline Software
Loading...
Searching...
No Matches
ICopiesTool.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 ATHDEVICEINTERFACES_ICOPIESTOOL_H
5#define ATHDEVICEINTERFACES_ICOPIESTOOL_H
6
7// Framework include(s).
8#include "GaudiKernel/EventContext.h"
9#include "GaudiKernel/IAlgTool.h"
10
11// VecMem include(s).
12#include <vecmem/utils/copy.hpp>
13
14// System include(s).
15#include <memory>
16
17namespace AthDevice {
18
40class ICopiesTool : virtual public IAlgTool {
41
42 public:
45
47 virtual ~ICopiesTool() = default;
48
50 virtual std::shared_ptr<const vecmem::copy> hostCopy(
51 const EventContext& ctx) const = 0;
52
54 virtual std::shared_ptr<const vecmem::copy> deviceCopy(
55 const EventContext& ctx) const = 0;
56
57}; // class ICopiesTool
58
59} // namespace AthDevice
60
61#endif // ATHDEVICEINTERFACES_ICOPIESTOOL_H
Interface for a tool that provides host and device copy objects.
Definition ICopiesTool.h:40
DeclareInterfaceID(ICopiesTool, 1, 0)
Declare the interface that the tool will implement.
virtual std::shared_ptr< const vecmem::copy > hostCopy(const EventContext &ctx) const =0
Get the "host" copy object.
virtual ~ICopiesTool()=default
Destructor.
virtual std::shared_ptr< const vecmem::copy > deviceCopy(const EventContext &ctx) const =0
Get the "device" copy object.