ATLAS Offline Software
StreamHolder.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 //
3 // Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
4 //
5 #ifndef ATHCUDAINTERFACES_STREAMHOLDER_H
6 #define ATHCUDAINTERFACES_STREAMHOLDER_H
7 
8 namespace AthCUDA {
9 
10  // Forward declaration(s).
11  class IStreamPoolSvc;
12 
24  class StreamHolder {
25 
27 #ifdef __CUDACC__
28  friend cudaStream_t getStream( StreamHolder& );
29 #endif // __CUDACC__
30 
31  public:
33  StreamHolder();
37  StreamHolder( const StreamHolder& ) = delete;
41  ~StreamHolder();
42 
44  StreamHolder& operator=( const StreamHolder& ) = delete;
47 
49  operator bool() const;
50 
51  private:
53  void* m_stream;
56 
57  }; // class StreamHolder
58 
59 } // namespace AthCUDA
60 
61 #endif // ATHCUDAINTERFACES_STREAMHOLDER_H
AthCUDA::IStreamPoolSvc
Interface for a CUDA stream pool service.
Definition: IStreamPoolSvc.h:24
AthCUDA::StreamHolder::m_stream
void * m_stream
The managed stream.
Definition: StreamHolder.h:53
pool
pool namespace
Definition: libname.h:15
AthCUDA::StreamHolder::StreamHolder
StreamHolder(const StreamHolder &)=delete
Copy constructor.
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
AthCUDA::StreamHolder::m_pool
IStreamPoolSvc * m_pool
The pool that this holder is attached to.
Definition: StreamHolder.h:55
AthCUDA
Definition: Info.h:14
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthCUDA::StreamHolder::operator=
StreamHolder & operator=(const StreamHolder &)=delete
Copy assignment operator.
AthCUDA::StreamHolder
Helper class for handling CUDA streams.
Definition: StreamHolder.h:24
AthCUDA::StreamHolder::StreamHolder
StreamHolder()
Friend declaration(s).
Definition: StreamHolder.cxx:11
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
AthCUDA::StreamHolder::~StreamHolder
~StreamHolder()
Destructor.
Definition: StreamHolder.cxx:28