ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthCUDA
AthCUDAServices
src
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).
9
#include "
AthCUDAInterfaces/StreamHolder.h
"
10
11
namespace
AthCUDA
{
12
13
// Forward declaration(s).
14
class
IStreamPoolSvc
;
15
class
StreamPoolSvcImplData;
16
18
class
StreamPoolSvcImpl
{
19
20
public
:
22
StreamPoolSvcImpl
(
unsigned
int
nStreams,
IStreamPoolSvc
& svc );
24
StreamPoolSvcImpl
(
const
StreamPoolSvcImpl
& ) =
delete
;
26
StreamPoolSvcImpl
(
StreamPoolSvcImpl
&& parent );
28
~StreamPoolSvcImpl
();
29
31
StreamPoolSvcImpl
&
operator=
(
const
StreamPoolSvcImpl
& ) =
delete
;
33
StreamPoolSvcImpl
&
operator=
(
StreamPoolSvcImpl
&& rhs );
34
37
45
StreamHolder
getAvailableStream
();
46
55
void
yieldStream
(
StreamHolder
& stream );
56
58
59
private
:
61
IStreamPoolSvc
*
m_svc
;
63
StreamPoolSvcImplData*
m_data
;
64
65
};
// class StreamPoolSvcImpl
66
67
}
// namespace AthCUDA
68
69
#endif
// ATHCUDASERVICES_STREAMPOOLSVCIMPL_H
StreamHolder.h
AthCUDA::IStreamPoolSvc
Interface for a CUDA stream pool service.
Definition
IStreamPoolSvc.h:24
AthCUDA::StreamHolder
Helper class for handling CUDA streams.
Definition
StreamHolder.h:24
AthCUDA::StreamPoolSvcImpl::operator=
StreamPoolSvcImpl & operator=(const StreamPoolSvcImpl &)=delete
Copy assignment operator.
AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl
StreamPoolSvcImpl(const StreamPoolSvcImpl &)=delete
Copy constructor.
AthCUDA::StreamPoolSvcImpl::yieldStream
void yieldStream(StreamHolder &stream)
Put a given stream back into the pool.
AthCUDA::StreamPoolSvcImpl::m_data
StreamPoolSvcImplData * m_data
Data used by the class behind the scenes.
Definition
StreamPoolSvcImpl.h:63
AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl
StreamPoolSvcImpl(StreamPoolSvcImpl &&parent)
Move constructor.
AthCUDA::StreamPoolSvcImpl::m_svc
IStreamPoolSvc * m_svc
The service that this object is used by.
Definition
StreamPoolSvcImpl.h:61
AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl
StreamPoolSvcImpl(unsigned int nStreams, IStreamPoolSvc &svc)
Constructor with all necessary arguments.
AthCUDA::StreamPoolSvcImpl::~StreamPoolSvcImpl
~StreamPoolSvcImpl()
Destructor.
AthCUDA::StreamPoolSvcImpl::operator=
StreamPoolSvcImpl & operator=(StreamPoolSvcImpl &&rhs)
Move assignment operator.
AthCUDA::StreamPoolSvcImpl::getAvailableStream
StreamHolder getAvailableStream()
Get a stream from the pool.
AthCUDA
Definition
Info.h:14
Generated on
for ATLAS Offline Software by
1.17.0