ATLAS Offline Software
StreamPoolSvcImpl.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 ATHCUDASERVICES_STREAMPOOLSVCIMPL_H
6 #define ATHCUDASERVICES_STREAMPOOLSVCIMPL_H
7 
8 // AthCUDA include(s).
10 
11 namespace AthCUDA {
12 
13  // Forward declaration(s).
14  class IStreamPoolSvc;
15  class StreamPoolSvcImplData;
16 
19 
20  public:
22  StreamPoolSvcImpl( unsigned int nStreams, IStreamPoolSvc& svc );
29 
34 
37 
46 
56 
58 
59  private:
63  StreamPoolSvcImplData* m_data;
64 
65  }; // class StreamPoolSvcImpl
66 
67 } // namespace AthCUDA
68 
69 #endif // ATHCUDASERVICES_STREAMPOOLSVCIMPL_H
AthCUDA::IStreamPoolSvc
Interface for a CUDA stream pool service.
Definition: IStreamPoolSvc.h:24
AthCUDA::StreamPoolSvcImpl::getAvailableStream
StreamHolder getAvailableStream()
Get a stream from the pool.
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
AthCUDA::StreamPoolSvcImpl::m_data
StreamPoolSvcImplData * m_data
Data used by the class behind the scenes.
Definition: StreamPoolSvcImpl.h:63
AthCUDA::StreamPoolSvcImpl::yieldStream
void yieldStream(StreamHolder &stream)
Put a given stream back into the pool.
AthCUDA
Definition: Info.h:14
AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl
StreamPoolSvcImpl(const StreamPoolSvcImpl &)=delete
Copy constructor.
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl
StreamPoolSvcImpl(StreamPoolSvcImpl &&parent)
Move constructor.
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
AthCUDA::StreamPoolSvcImpl::~StreamPoolSvcImpl
~StreamPoolSvcImpl()
Destructor.
AthCUDA::StreamPoolSvcImpl
CUDA implementation of AthCUDA::StreamPoolSvc.
Definition: StreamPoolSvcImpl.h:18
StreamHolder.h
AthCUDA::StreamPoolSvcImpl::m_svc
IStreamPoolSvc * m_svc
The service that this object is used by.
Definition: StreamPoolSvcImpl.h:61
AthCUDA::StreamPoolSvcImpl::operator=
StreamPoolSvcImpl & operator=(const StreamPoolSvcImpl &)=delete
Copy assignment operator.
AthCUDA::StreamHolder
Helper class for handling CUDA streams.
Definition: StreamHolder.h:24
AthCUDA::StreamPoolSvcImpl::operator=
StreamPoolSvcImpl & operator=(StreamPoolSvcImpl &&rhs)
Move assignment operator.
AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl
StreamPoolSvcImpl(unsigned int nStreams, IStreamPoolSvc &svc)
Constructor with all necessary arguments.