ttg_parsec::detail::ttg_data_copy_t Struct Referenceabstract
Inheritance diagram for ttg_parsec::detail::ttg_data_copy_t:
ttg_parsec::detail::ttg_data_copy_self_t ttg_parsec::TTValue< Fn > ttg_parsec::TTValue< DerivedT > ttg_parsec::detail::ttg_data_value_copy_t< ValueT > Fn

Documentation

Definition at line 142 of file ttg_data_copy.h.

Public Types

using iterator = ttg_parsec_data_wrapper_t **
 
using iovec_iterator = typename std::vector< ttg::iovec >::iterator
 

Public Member Functions

 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
 
virtual void * get_ptr ()=0
 
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)
 

Static Public Attributes

static constexpr int mutable_tag = std::numeric_limits<int>::min()
 

Protected Attributes

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
 

Additional Inherited Members

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

Member Typedef Documentation

◆ iovec_iterator

Definition at line 405 of file ttg_data_copy.h.

◆ iterator

Constructor & Destructor Documentation

◆ ttg_data_copy_t() [1/3]

ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t ( )
inline

Definition at line 148 of file ttg_data_copy.h.

◆ ttg_data_copy_t() [2/3]

ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t ( const ttg_data_copy_t c)
inline

Definition at line 152 of file ttg_data_copy.h.

◆ ttg_data_copy_t() [3/3]

ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t ( ttg_data_copy_t &&  c)
inline

Definition at line 160 of file ttg_data_copy.h.

◆ ~ttg_data_copy_t()

virtual ttg_parsec::detail::ttg_data_copy_t::~ttg_data_copy_t ( )
virtualdefault

Member Function Documentation

◆ add_device_data()

void ttg_parsec::detail::ttg_data_copy_t::add_device_data ( ttg_parsec_data_wrapper_t data)
inline

Definition at line 311 of file ttg_data_copy.h.

◆ add_ref()

int32_t ttg_parsec::detail::ttg_data_copy_t::add_ref ( )
inline

Definition at line 274 of file ttg_data_copy.h.

◆ decrement_readers()

template<bool Atomic = true>
int ttg_parsec::detail::ttg_data_copy_t::decrement_readers ( )
inline

Definition at line 247 of file ttg_data_copy.h.

◆ drop_ref()

int32_t ttg_parsec::detail::ttg_data_copy_t::drop_ref ( )
inline

Definition at line 278 of file ttg_data_copy.h.

◆ foreach_parsec_data()

template<typename Fn >
void ttg_parsec::detail::ttg_data_copy_t::foreach_parsec_data ( Fn &&  fn)
inline

Definition at line 367 of file ttg_data_copy.h.

◆ foreach_wrapper()

template<typename Fn >
void ttg_parsec::detail::ttg_data_copy_t::foreach_wrapper ( Fn &&  fn)
inline

Definition at line 358 of file ttg_data_copy.h.

◆ get_next_task()

parsec_task_t* ttg_parsec::detail::ttg_data_copy_t::get_next_task ( ) const
inline

Definition at line 266 of file ttg_data_copy.h.

◆ get_ptr()

virtual void* ttg_parsec::detail::ttg_data_copy_t::get_ptr ( )
pure virtual

◆ has_ref()

bool ttg_parsec::detail::ttg_data_copy_t::has_ref ( )
inline

Definition at line 282 of file ttg_data_copy.h.

◆ inc_current_version()

void ttg_parsec::detail::ttg_data_copy_t::inc_current_version ( )
inline

Definition at line 291 of file ttg_data_copy.h.

◆ increment_readers()

template<bool Atomic = true>
int ttg_parsec::detail::ttg_data_copy_t::increment_readers ( )
inline

Definition at line 224 of file ttg_data_copy.h.

◆ iovec_add()

void ttg_parsec::detail::ttg_data_copy_t::iovec_add ( const ttg::iovec iov)
inline

Definition at line 419 of file ttg_data_copy.h.

◆ iovec_begin()

iovec_iterator ttg_parsec::detail::ttg_data_copy_t::iovec_begin ( )
inline

Definition at line 407 of file ttg_data_copy.h.

◆ iovec_count()

std::size_t ttg_parsec::detail::ttg_data_copy_t::iovec_count ( ) const
inline

Definition at line 427 of file ttg_data_copy.h.

◆ iovec_end()

iovec_iterator ttg_parsec::detail::ttg_data_copy_t::iovec_end ( )
inline

Definition at line 411 of file ttg_data_copy.h.

◆ iovec_reset()

void ttg_parsec::detail::ttg_data_copy_t::iovec_reset ( )
inline

Definition at line 415 of file ttg_data_copy.h.

◆ iovec_span()

ttg::span<ttg::iovec> ttg_parsec::detail::ttg_data_copy_t::iovec_span ( )
inline

Definition at line 423 of file ttg_data_copy.h.

◆ is_mutable()

bool ttg_parsec::detail::ttg_data_copy_t::is_mutable ( ) const
inline

Definition at line 211 of file ttg_data_copy.h.

◆ mark_mutable()

void ttg_parsec::detail::ttg_data_copy_t::mark_mutable ( )
inline

Definition at line 216 of file ttg_data_copy.h.

◆ num_dev_data()

int ttg_parsec::detail::ttg_data_copy_t::num_dev_data ( ) const
inline

Definition at line 353 of file ttg_data_copy.h.

◆ num_readers()

int ttg_parsec::detail::ttg_data_copy_t::num_readers ( ) const
inline

Definition at line 259 of file ttg_data_copy.h.

◆ num_ref()

int32_t ttg_parsec::detail::ttg_data_copy_t::num_ref ( ) const
inline

Definition at line 286 of file ttg_data_copy.h.

◆ operator=() [1/2]

ttg_data_copy_t& ttg_parsec::detail::ttg_data_copy_t::operator= ( const ttg_data_copy_t c)
inline

Definition at line 199 of file ttg_data_copy.h.

◆ operator=() [2/2]

ttg_data_copy_t& ttg_parsec::detail::ttg_data_copy_t::operator= ( ttg_data_copy_t &&  c)
inline

Definition at line 178 of file ttg_data_copy.h.

◆ remove_device_data()

void ttg_parsec::detail::ttg_data_copy_t::remove_device_data ( ttg_parsec_data_wrapper_t data)
inline

Definition at line 330 of file ttg_data_copy.h.

◆ reset_readers()

void ttg_parsec::detail::ttg_data_copy_t::reset_readers ( )
inline

Reset the number of readers to read-only with a single reader.

Definition at line 237 of file ttg_data_copy.h.

◆ set_next_task()

void ttg_parsec::detail::ttg_data_copy_t::set_next_task ( parsec_task_t *  task)
inline

Definition at line 270 of file ttg_data_copy.h.

◆ transfer_ownership()

void ttg_parsec::detail::ttg_data_copy_t::transfer_ownership ( int  access,
int  device = 0 
)
inline

Definition at line 299 of file ttg_data_copy.h.

Member Data Documentation

◆ m_dev_data

std::vector<ttg_parsec_data_wrapper_t*> ttg_parsec::detail::ttg_data_copy_t::m_dev_data
protected

Definition at line 442 of file ttg_data_copy.h.

◆ m_iovecs

std::vector<ttg::iovec> ttg_parsec::detail::ttg_data_copy_t::m_iovecs
protected

Definition at line 440 of file ttg_data_copy.h.

◆ m_next_task

parsec_task_t* ttg_parsec::detail::ttg_data_copy_t::m_next_task = nullptr
protected

Definition at line 436 of file ttg_data_copy.h.

◆ m_num_dev_data

int ttg_parsec::detail::ttg_data_copy_t::m_num_dev_data = 0
protected

Definition at line 445 of file ttg_data_copy.h.

◆ m_readers

int32_t ttg_parsec::detail::ttg_data_copy_t::m_readers = 1
protected

Definition at line 437 of file ttg_data_copy.h.

◆ m_refs

std::atomic<int32_t> ttg_parsec::detail::ttg_data_copy_t::m_refs = 1
protected

Definition at line 438 of file ttg_data_copy.h.

◆ m_single_dev_data

ttg_parsec_data_wrapper_t* ttg_parsec::detail::ttg_data_copy_t::m_single_dev_data
protected

Definition at line 444 of file ttg_data_copy.h.

◆ mutable_tag

constexpr int ttg_parsec::detail::ttg_data_copy_t::mutable_tag = std::numeric_limits<int>::min()
staticconstexpr

Definition at line 146 of file ttg_data_copy.h.


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