ATLAS Offline Software
Loading...
Searching...
No Matches
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
14namespace 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
Interface for a CUDA stream pool service.
virtual StreamHolder getAvailableStream()=0
Get a stream from the pool.
DeclareInterfaceID(AthCUDA::IStreamPoolSvc, 1, 0)
Declare the interface ID.
virtual void yieldStream(StreamHolder &stream)=0
Put a given stream back into the pool.
friend class StreamHolder
Make StreamHolder a friend of this interface.
virtual bool isEmpty() const =0
Check whether any streams are available for the job.
Definition Info.h:14