ATLAS Offline Software
Loading...
Searching...
No Matches
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
11namespace 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
55 void yieldStream( StreamHolder& stream );
56
58
59 private:
63 StreamPoolSvcImplData* m_data;
64
65 }; // class StreamPoolSvcImpl
66
67} // namespace AthCUDA
68
69#endif // ATHCUDASERVICES_STREAMPOOLSVCIMPL_H
Interface for a CUDA stream pool service.
Helper class for handling CUDA streams.
StreamPoolSvcImpl & operator=(const StreamPoolSvcImpl &)=delete
Copy assignment operator.
StreamPoolSvcImpl(const StreamPoolSvcImpl &)=delete
Copy constructor.
void yieldStream(StreamHolder &stream)
Put a given stream back into the pool.
StreamPoolSvcImplData * m_data
Data used by the class behind the scenes.
StreamPoolSvcImpl(StreamPoolSvcImpl &&parent)
Move constructor.
IStreamPoolSvc * m_svc
The service that this object is used by.
StreamPoolSvcImpl(unsigned int nStreams, IStreamPoolSvc &svc)
Constructor with all necessary arguments.
~StreamPoolSvcImpl()
Destructor.
StreamPoolSvcImpl & operator=(StreamPoolSvcImpl &&rhs)
Move assignment operator.
StreamHolder getAvailableStream()
Get a stream from the pool.
Definition Info.h:14