ATLAS Offline Software
IStreamPoolSvc.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_ISTREAMPOOLSVC_H
6 #define ATHCUDAINTERFACES_ISTREAMPOOLSVC_H
7 
8 // Local include(s).
10 
11 // Gaudi include(s).
12 #include "GaudiKernel/IService.h"
13 
14 namespace AthCUDA {
15 
24  class IStreamPoolSvc : public virtual IService {
25 
27  friend class StreamHolder;
28 
29  public:
32 
41  virtual bool isEmpty() const = 0;
42 
51 
52  protected:
60  virtual void yieldStream( StreamHolder& stream ) = 0;
61 
62  }; // class IStreamPoolSvc
63 
64 } // namespace AthCUDA
65 
66 #endif // ATHCUDAINTERFACES_ISTREAMPOOLSVC_H
AthCUDA::IStreamPoolSvc::DeclareInterfaceID
DeclareInterfaceID(AthCUDA::IStreamPoolSvc, 1, 0)
Declare the interface ID.
AthCUDA::IStreamPoolSvc
Interface for a CUDA stream pool service.
Definition: IStreamPoolSvc.h:24
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
AthCUDA::IStreamPoolSvc::isEmpty
virtual bool isEmpty() const =0
Check whether any streams are available for the job.
AthCUDA
Definition: Info.h:14
AthCUDA::IStreamPoolSvc::getAvailableStream
virtual StreamHolder getAvailableStream()=0
Get a stream from the pool.
StreamHolder.h
AthCUDA::StreamHolder
Helper class for handling CUDA streams.
Definition: StreamHolder.h:24
AthCUDA::IStreamPoolSvc::yieldStream
virtual void yieldStream(StreamHolder &stream)=0
Put a given stream back into the pool.