ATLAS Offline Software
Loading...
Searching...
No Matches
Control
AthCUDA
AthCUDAInterfaces
AthCUDAInterfaces
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
();
35
StreamHolder
(
void
* stream,
IStreamPoolSvc
*
pool
);
37
StreamHolder
(
const
StreamHolder
& ) =
delete
;
39
StreamHolder
(
StreamHolder
&& parent );
41
~StreamHolder
();
42
44
StreamHolder
&
operator=
(
const
StreamHolder
& ) =
delete
;
46
StreamHolder
&
operator=
(
StreamHolder
&& rhs );
47
49
operator
bool()
const
;
50
51
private
:
53
void
*
m_stream
;
55
IStreamPoolSvc
*
m_pool
;
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::operator=
StreamHolder & operator=(const StreamHolder &)=delete
Copy assignment operator.
AthCUDA::StreamHolder::m_pool
IStreamPoolSvc * m_pool
The pool that this holder is attached to.
Definition
StreamHolder.h:55
AthCUDA::StreamHolder::m_stream
void * m_stream
The managed stream.
Definition
StreamHolder.h:53
AthCUDA::StreamHolder::~StreamHolder
~StreamHolder()
Destructor.
Definition
StreamHolder.cxx:28
AthCUDA::StreamHolder::StreamHolder
StreamHolder(const StreamHolder &)=delete
Copy constructor.
AthCUDA::StreamHolder::StreamHolder
StreamHolder()
Friend declaration(s).
Definition
StreamHolder.cxx:11
AthCUDA
Definition
Info.h:14
pool
pool namespace
Definition
libname.h:15
Generated on
for ATLAS Offline Software by
1.14.0