ttg_parsec::detail::ttg_data_value_copy_t< ValueT > Struct Template Referencefinal
Inheritance diagram for ttg_parsec::detail::ttg_data_value_copy_t< ValueT >:
ttg_parsec::detail::ttg_data_copy_container_setter< ttg_data_copy_t > ttg_parsec::detail::ttg_data_copy_t ttg_parsec::detail::ttg_data_copy_self_t

Documentation

template<typename ValueT>
struct ttg_parsec::detail::ttg_data_value_copy_t< ValueT >

Extension of ttg_data_copy_t holding the actual value. The virtual destructor will take care of destructing the value if the destructor of ttg_data_copy_t base class is called.

Definition at line 449 of file ttg_data_copy.h.

Public Types

using value_type = ValueT
 
- Public Types inherited from ttg_parsec::detail::ttg_data_copy_t
using iterator = ttg_parsec_data_wrapper_t **
 
using iovec_iterator = typename std::vector< ttg::iovec >::iterator
 

Public Member Functions

template<typename T >
 ttg_data_value_copy_t (T &&value)
 
 ttg_data_value_copy_t (ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_constructible_v< value_type >)
 
 ttg_data_value_copy_t (const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_constructible_v< value_type >)
 
ttg_data_value_copy_toperator= (ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_assignable_v< value_type >)
 
ttg_data_value_copy_toperator= (const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_assignable_v< value_type >)
 
value_typeoperator* ()
 
virtual ~ttg_data_value_copy_t ()=default
 
virtual void * get_ptr () override final
 
- Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_t
 ttg_data_copy_t ()
 
 ttg_data_copy_t (const ttg_data_copy_t &c)
 
 ttg_data_copy_t (ttg_data_copy_t &&c)
 
ttg_data_copy_toperator= (ttg_data_copy_t &&c)
 
ttg_data_copy_toperator= (const ttg_data_copy_t &c)
 
virtual ~ttg_data_copy_t ()=default
 
bool is_mutable () const
 
void mark_mutable ()
 
template<bool Atomic = true>
int increment_readers ()
 
void reset_readers ()
 
template<bool Atomic = true>
int decrement_readers ()
 
int num_readers () const
 
parsec_task_t * get_next_task () const
 
void set_next_task (parsec_task_t *task)
 
int32_t add_ref ()
 
int32_t drop_ref ()
 
bool has_ref ()
 
int32_t num_ref () const
 
void inc_current_version ()
 
void transfer_ownership (int access, int device=0)
 
void add_device_data (ttg_parsec_data_wrapper_t *data)
 
void remove_device_data (ttg_parsec_data_wrapper_t *data)
 
int num_dev_data () const
 
template<typename Fn >
void foreach_wrapper (Fn &&fn)
 
template<typename Fn >
void foreach_parsec_data (Fn &&fn)
 
iovec_iterator iovec_begin ()
 
iovec_iterator iovec_end ()
 
void iovec_reset ()
 
void iovec_add (const ttg::iovec &iov)
 
ttg::span< ttg::ioveciovec_span ()
 
std::size_t iovec_count () const
 
- Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_self_t
 ttg_data_copy_self_t (ttg_data_copy_t *dc)
 

Public Attributes

value_type m_value
 
- Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_self_t
parsec_list_item_t super
 
ttg_data_copy_tself
 

Additional Inherited Members

- Static Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_t
static constexpr int mutable_tag = std::numeric_limits<int>::min()
 
- Protected Attributes inherited from ttg_parsec::detail::ttg_data_copy_t
parsec_task_t * m_next_task = nullptr
 
int32_t m_readers = 1
 
std::atomic< int32_t > m_refs = 1
 
std::vector< ttg::iovecm_iovecs
 
std::vector< ttg_parsec_data_wrapper_t * > m_dev_data
 
ttg_parsec_data_wrapper_tm_single_dev_data
 
int m_num_dev_data = 0
 

Member Typedef Documentation

◆ value_type

template<typename ValueT >
using ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::value_type = ValueT

Definition at line 451 of file ttg_data_copy.h.

Constructor & Destructor Documentation

◆ ttg_data_value_copy_t() [1/3]

template<typename ValueT >
template<typename T >
ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::ttg_data_value_copy_t ( T &&  value)
inline

Definition at line 455 of file ttg_data_copy.h.

◆ ttg_data_value_copy_t() [2/3]

template<typename ValueT >
ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::ttg_data_value_copy_t ( ttg_data_value_copy_t< ValueT > &&  c)
inlinenoexcept

Definition at line 464 of file ttg_data_copy.h.

◆ ttg_data_value_copy_t() [3/3]

template<typename ValueT >
ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::ttg_data_value_copy_t ( const ttg_data_value_copy_t< ValueT > &  c)
inlinenoexcept

Definition at line 474 of file ttg_data_copy.h.

◆ ~ttg_data_value_copy_t()

template<typename ValueT >
virtual ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::~ttg_data_value_copy_t ( )
virtualdefault

Member Function Documentation

◆ get_ptr()

template<typename ValueT >
virtual void* ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::get_ptr ( )
inlinefinaloverridevirtual

Implements ttg_parsec::detail::ttg_data_copy_t.

Definition at line 513 of file ttg_data_copy.h.

◆ operator*()

template<typename ValueT >
value_type& ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::operator* ( )
inline

Definition at line 506 of file ttg_data_copy.h.

◆ operator=() [1/2]

template<typename ValueT >
ttg_data_value_copy_t& ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::operator= ( const ttg_data_value_copy_t< ValueT > &  c)
inlinenoexcept

Definition at line 495 of file ttg_data_copy.h.

◆ operator=() [2/2]

template<typename ValueT >
ttg_data_value_copy_t& ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::operator= ( ttg_data_value_copy_t< ValueT > &&  c)
inlinenoexcept

Definition at line 484 of file ttg_data_copy.h.

Member Data Documentation

◆ m_value

template<typename ValueT >
value_type ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::m_value

Definition at line 452 of file ttg_data_copy.h.


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