STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
Concurrency::details::_Buffer_descriptor Struct Reference

#include <amprt.h>

Public Member Functions

 _Buffer_descriptor () __GPU
 
 _Buffer_descriptor (_In_ void *_Data_ptr, _In_ _Ubiquitous_buffer *_Buffer_ptr, _Access_mode _Curr_cpu_access_mode, _Access_mode _Type_mode) __GPU
 
 ~_Buffer_descriptor () __GPU
 
 _Buffer_descriptor (const _Buffer_descriptor &_Other) __GPU
 
_Buffer_descriptoroperator= (const _Buffer_descriptor &_Other) __GPU
 
_Ret_ _Ubiquitous_buffer_Get_buffer_ptr () const __CPU_ONLY
 
void _Set_buffer_ptr (_In_opt_ _Ubiquitous_buffer *_Buffer_ptr) __CPU_ONLY
 
void _Set_buffer_ptr (_In_opt_ _Ubiquitous_buffer *_Buffer_ptr) __GPU_ONLY
 
bool _Is_array () const
 
_Ret_ _View_key _Get_view_key ()
 
const _View_key _Get_view_key () const
 
_AMPIMP void _Get_CPU_access (_Access_mode _Requested_mode) const
 

Public Attributes

void_M_data_ptr
 
_Access_mode _M_curr_cpu_access_mode
 
_Access_mode _M_type_access_mode
 

Private Attributes

_Ubiquitous_buffer_M_buffer_ptr
 

Friends

_Event _Get_access_async (const _View_key _Key, accelerator_view _Av, _Access_mode _Mode, _Buffer_ptr &_Buf_ptr)
 

Constructor & Destructor Documentation

Concurrency::details::_Buffer_descriptor::_Buffer_descriptor ( )
inline
458  {
459  }
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
#define NULL
Definition: crtdbg.h:30
Definition: amprt.h:87
_Access_mode _M_curr_cpu_access_mode
Definition: amprt.h:444
_Access_mode _M_type_access_mode
Definition: amprt.h:449
void * _M_data_ptr
Definition: amprt.h:432
Definition: amprt.h:84
Concurrency::details::_Buffer_descriptor::_Buffer_descriptor ( _In_ void _Data_ptr,
_In_ _Ubiquitous_buffer _Buffer_ptr,
_Access_mode  _Curr_cpu_access_mode,
_Access_mode  _Type_mode 
)
inline
463  : _M_data_ptr(_Data_ptr), _M_buffer_ptr(NULL),
464  _M_curr_cpu_access_mode(_Curr_cpu_access_mode), _M_type_access_mode(_Type_mode)
465  {
467  }
details::_Reference_counted_obj_ptr< details::_Buffer > _Buffer_ptr
Definition: amprt.h:302
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
#define NULL
Definition: crtdbg.h:30
void _Set_buffer_ptr(_In_opt_ _Ubiquitous_buffer *_Buffer_ptr) __CPU_ONLY
Definition: amprt.h:502
_Access_mode _M_curr_cpu_access_mode
Definition: amprt.h:444
_Access_mode _M_type_access_mode
Definition: amprt.h:449
void * _M_data_ptr
Definition: amprt.h:432
Concurrency::details::_Buffer_descriptor::~_Buffer_descriptor ( )
inline
471  {
473  }
#define NULL
Definition: crtdbg.h:30
void _Set_buffer_ptr(_In_opt_ _Ubiquitous_buffer *_Buffer_ptr) __CPU_ONLY
Definition: amprt.h:502
Concurrency::details::_Buffer_descriptor::_Buffer_descriptor ( const _Buffer_descriptor _Other)
inline
479  {
481  }
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
#define NULL
Definition: crtdbg.h:30
void _Set_buffer_ptr(_In_opt_ _Ubiquitous_buffer *_Buffer_ptr) __CPU_ONLY
Definition: amprt.h:502
_Access_mode _M_curr_cpu_access_mode
Definition: amprt.h:444
_Access_mode _M_type_access_mode
Definition: amprt.h:449
void * _M_data_ptr
Definition: amprt.h:432

Member Function Documentation

_Ret_ _Ubiquitous_buffer* Concurrency::details::_Buffer_descriptor::_Get_buffer_ptr ( ) const
inline
498  {
499  return _M_buffer_ptr;
500  }
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
_AMPIMP void Concurrency::details::_Buffer_descriptor::_Get_CPU_access ( _Access_mode  _Requested_mode) const
_Ret_ _View_key Concurrency::details::_Buffer_descriptor::_Get_view_key ( )
inline
533  {
534  return this;
535  }
const _View_key Concurrency::details::_Buffer_descriptor::_Get_view_key ( ) const
inline
538  {
539  return ((const _View_key)(this));
540  }
bool Concurrency::details::_Buffer_descriptor::_Is_array ( ) const
inline
528  {
530  }
Definition: amprt.h:87
_Access_mode _M_type_access_mode
Definition: amprt.h:449
void Concurrency::details::_Buffer_descriptor::_Set_buffer_ptr ( _In_opt_ _Ubiquitous_buffer _Buffer_ptr)
inline
503  {
504  if (_M_buffer_ptr != _Buffer_ptr)
505  {
506  if (_M_buffer_ptr != NULL) {
507  reinterpret_cast<_Reference_counter*>(_M_buffer_ptr)->_Remove_reference();
508  }
509 
511 
512  if (_M_buffer_ptr != NULL) {
513  reinterpret_cast<_Reference_counter*>(_M_buffer_ptr)->_Add_reference();
514  }
515  }
516  }
details::_Reference_counted_obj_ptr< details::_Buffer > _Buffer_ptr
Definition: amprt.h:302
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
#define NULL
Definition: crtdbg.h:30
void Concurrency::details::_Buffer_descriptor::_Set_buffer_ptr ( _In_opt_ _Ubiquitous_buffer _Buffer_ptr)
inline
520  {
521  // No need to set the buffer ptr on the GPU
522  UNREFERENCED_PARAMETER(_Buffer_ptr);
524  }
details::_Reference_counted_obj_ptr< details::_Buffer > _Buffer_ptr
Definition: amprt.h:302
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
#define NULL
Definition: crtdbg.h:30
_Buffer_descriptor& Concurrency::details::_Buffer_descriptor::operator= ( const _Buffer_descriptor _Other)
inline
485  {
486  if (this != &_Other)
487  {
488  _M_data_ptr = _Other._M_data_ptr;
492  }
493 
494  return *this;
495  }
_Ubiquitous_buffer * _M_buffer_ptr
Definition: amprt.h:439
void _Set_buffer_ptr(_In_opt_ _Ubiquitous_buffer *_Buffer_ptr) __CPU_ONLY
Definition: amprt.h:502
_Access_mode _M_curr_cpu_access_mode
Definition: amprt.h:444
_Access_mode _M_type_access_mode
Definition: amprt.h:449
void * _M_data_ptr
Definition: amprt.h:432

Friends And Related Function Documentation

_Event _Get_access_async ( const _View_key  _Key,
accelerator_view  _Av,
_Access_mode  _Mode,
_Buffer_ptr _Buf_ptr 
)
friend
3458  {
3459  return _Key->_Get_buffer_ptr()->_Get_access_async(_Key->_Get_view_key(), _Av, _Mode, _Buf_ptr);
3460  }
_Check_return_ _In_ int _Mode
Definition: io.h:338
_Ret_ _View_key _Get_view_key()
Definition: amprt.h:532
_Ret_ _Ubiquitous_buffer * _Get_buffer_ptr() const __CPU_ONLY
Definition: amprt.h:497
friend _Event _Get_access_async(const _View_key _Key, accelerator_view _Av, _Access_mode _Mode, _Buffer_ptr &_Buf_ptr)
Definition: amprt.h:3457

Member Data Documentation

_Ubiquitous_buffer* Concurrency::details::_Buffer_descriptor::_M_buffer_ptr
private
_Access_mode Concurrency::details::_Buffer_descriptor::_M_curr_cpu_access_mode
void* Concurrency::details::_Buffer_descriptor::_M_data_ptr
mutable
_Access_mode Concurrency::details::_Buffer_descriptor::_M_type_access_mode

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