ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
AthCUDA::StreamPoolSvcImpl Class Reference

CUDA implementation of AthCUDA::StreamPoolSvc. More...

#include <StreamPoolSvcImpl.h>

Collaboration diagram for AthCUDA::StreamPoolSvcImpl:

Public Member Functions

 StreamPoolSvcImpl (unsigned int nStreams, IStreamPoolSvc &svc)
 Constructor with all necessary arguments. More...
 
 StreamPoolSvcImpl (const StreamPoolSvcImpl &)=delete
 Copy constructor. More...
 
 StreamPoolSvcImpl (StreamPoolSvcImpl &&parent)
 Move constructor. More...
 
 ~StreamPoolSvcImpl ()
 Destructor. More...
 
StreamPoolSvcImploperator= (const StreamPoolSvcImpl &)=delete
 Copy assignment operator. More...
 
StreamPoolSvcImploperator= (StreamPoolSvcImpl &&rhs)
 Move assignment operator. More...
 
Interface implementing parts of @c AthCUDA::IStreamPoolSvc
StreamHolder getAvailableStream ()
 Get a stream from the pool. More...
 
void yieldStream (StreamHolder &stream)
 Put a given stream back into the pool. More...
 

Private Attributes

IStreamPoolSvcm_svc
 The service that this object is used by. More...
 
StreamPoolSvcImplData * m_data
 Data used by the class behind the scenes. More...
 

Detailed Description

CUDA implementation of AthCUDA::StreamPoolSvc.

Definition at line 18 of file StreamPoolSvcImpl.h.

Constructor & Destructor Documentation

◆ StreamPoolSvcImpl() [1/3]

AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl ( unsigned int  nStreams,
IStreamPoolSvc svc 
)

Constructor with all necessary arguments.

◆ StreamPoolSvcImpl() [2/3]

AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl ( const StreamPoolSvcImpl )
delete

Copy constructor.

◆ StreamPoolSvcImpl() [3/3]

AthCUDA::StreamPoolSvcImpl::StreamPoolSvcImpl ( StreamPoolSvcImpl &&  parent)

Move constructor.

◆ ~StreamPoolSvcImpl()

AthCUDA::StreamPoolSvcImpl::~StreamPoolSvcImpl ( )

Destructor.

Member Function Documentation

◆ getAvailableStream()

StreamHolder AthCUDA::StreamPoolSvcImpl::getAvailableStream ( )

Get a stream from the pool.

Note that the returned holder may point to a null memory address, in case no streams are available at the moment of the call.

Returns
A stream holder describing a possibly abailable stream

◆ operator=() [1/2]

StreamPoolSvcImpl& AthCUDA::StreamPoolSvcImpl::operator= ( const StreamPoolSvcImpl )
delete

Copy assignment operator.

◆ operator=() [2/2]

StreamPoolSvcImpl& AthCUDA::StreamPoolSvcImpl::operator= ( StreamPoolSvcImpl &&  rhs)

Move assignment operator.

◆ yieldStream()

void AthCUDA::StreamPoolSvcImpl::yieldStream ( StreamHolder stream)

Put a given stream back into the pool.

This is a function called by AthCUDA::StreamHolder behind the scenes when it goes out of scope. It should not be called by hand.

Parameters
streamThe stream holder whose stream is to be put back into the pool

Member Data Documentation

◆ m_data

StreamPoolSvcImplData* AthCUDA::StreamPoolSvcImpl::m_data
private

Data used by the class behind the scenes.

Definition at line 63 of file StreamPoolSvcImpl.h.

◆ m_svc

IStreamPoolSvc* AthCUDA::StreamPoolSvcImpl::m_svc
private

The service that this object is used by.

Definition at line 61 of file StreamPoolSvcImpl.h.


The documentation for this class was generated from the following file: