Block-Structured AMR Software Framework
amrex::Gpu::AsyncArray< T, > Class Template Reference

#include <AMReX_GpuAsyncArray.H>

Public Member Functions

 AsyncArray (T const *h_p, const std::size_t n)
 
template<typename U = T, std::enable_if_t< std::is_standard_layout_v< U > &&std::is_trivial_v< U >, int > = 0>
 AsyncArray (const std::size_t n)
 
 ~AsyncArray ()
 
 AsyncArray (AsyncArray const &)=delete
 
 AsyncArray (AsyncArray &&)=delete
 
void operator= (AsyncArray const &)=delete
 
void operator= (AsyncArray &&)=delete
 
T const * data () const noexcept
 
T * data () noexcept
 
void clear ()
 
void copyToHost (T *h_p, std::size_t n) const
 

Private Attributes

T * d_data = nullptr
 
T * h_data = nullptr
 

Constructor & Destructor Documentation

◆ AsyncArray() [1/4]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
amrex::Gpu::AsyncArray< T, >::AsyncArray ( T const *  h_p,
const std::size_t  n 
)
inline

◆ AsyncArray() [2/4]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
template<typename U = T, std::enable_if_t< std::is_standard_layout_v< U > &&std::is_trivial_v< U >, int > = 0>
amrex::Gpu::AsyncArray< T, >::AsyncArray ( const std::size_t  n)
inlineexplicit

◆ ~AsyncArray()

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
amrex::Gpu::AsyncArray< T, >::~AsyncArray ( )
inline

◆ AsyncArray() [3/4]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
amrex::Gpu::AsyncArray< T, >::AsyncArray ( AsyncArray< T, > const &  )
delete

◆ AsyncArray() [4/4]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
amrex::Gpu::AsyncArray< T, >::AsyncArray ( AsyncArray< T, > &&  )
delete

Member Function Documentation

◆ clear()

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
void amrex::Gpu::AsyncArray< T, >::clear ( )
inline

◆ copyToHost()

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
void amrex::Gpu::AsyncArray< T, >::copyToHost ( T *  h_p,
std::size_t  n 
) const
inline

◆ data() [1/2]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
T const* amrex::Gpu::AsyncArray< T, >::data ( ) const
inlinenoexcept

◆ data() [2/2]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
T* amrex::Gpu::AsyncArray< T, >::data ( )
inlinenoexcept

◆ operator=() [1/2]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
void amrex::Gpu::AsyncArray< T, >::operator= ( AsyncArray< T, > &&  )
delete

◆ operator=() [2/2]

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
void amrex::Gpu::AsyncArray< T, >::operator= ( AsyncArray< T, > const &  )
delete

Member Data Documentation

◆ d_data

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
T* amrex::Gpu::AsyncArray< T, >::d_data = nullptr
private

◆ h_data

template<typename T , std::enable_if_t< std::is_trivially_copyable_v< T >, int > = 0>
T* amrex::Gpu::AsyncArray< T, >::h_data = nullptr
private

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