STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
Concurrency::details::_Concurrent_vector_base_v4 Class Reference

#include <concurrent_vector.h>

Inheritance diagram for Concurrency::details::_Concurrent_vector_base_v4:
Concurrency::concurrent_vector< _Ty, _Ax >

Classes

struct  _Internal_segments_table
 
struct  _Segment_t
 

Protected Types

typedef size_t _Segment_index_t
 
typedef size_t _Size_type
 
typedef void(__cdecl * _My_internal_array_op1) (void *_Begin, _Size_type _N)
 
typedef void(__cdecl * _My_internal_array_op2) (void *_Dst, const void *_Src, _Size_type _N)
 

Protected Member Functions

void *__cdecl * _My_vector_allocator_ptr (_Concurrent_vector_base_v4 &, size_t)
 
 _Concurrent_vector_base_v4 ()
 
_CRTIMP2 ~_Concurrent_vector_base_v4 ()
 
_CRTIMP2 void _Internal_reserve (_Size_type _N, _Size_type _Element_size, _Size_type _Max_size)
 
_CRTIMP2 _Size_type _Internal_capacity () const
 
void _Internal_grow (_Size_type _Start, _Size_type _Finish, _Size_type _Element_size, _My_internal_array_op2 _Init, const void *_Src)
 
_Size_type _Internal_grow_segment (const _Size_type _Start, _Size_type _Finish, _Size_type _Element_size, _Segment_t **_PPSegment, _Size_type *_PSegStart, _Size_type *_PSegFinish)
 
_CRTIMP2 _Size_type _Internal_grow_by (_Size_type _Delta, _Size_type _Element_size, _My_internal_array_op2 _Init, const void *_Src)
 
_CRTIMP2 void_Internal_push_back (_Size_type _Element_size, _Size_type &_Index)
 
_CRTIMP2 _Segment_index_t _Internal_clear (_My_internal_array_op1 _Destroy)
 
void _Internal_truncate (_Size_type _Old_size, _Size_type _New_size, _Size_type _Element_size, _My_internal_array_op1 _Destroy)
 
_CRTIMP2 void_Internal_compact (_Size_type _Element_size, void *_Table, _My_internal_array_op1 _Destroy, _My_internal_array_op2 _Copy)
 
_CRTIMP2 void _Internal_copy (const _Concurrent_vector_base_v4 &_Src, _Size_type _Element_size, _My_internal_array_op2 _Copy)
 
_CRTIMP2 void _Internal_assign (const _Concurrent_vector_base_v4 &_Src, _Size_type _Element_size, _My_internal_array_op1 _Destroy, _My_internal_array_op2 _Assign, _My_internal_array_op2 _Copy)
 
_CRTIMP2 void _Internal_throw_exception (_Size_type) const
 
_CRTIMP2 void _Internal_swap (_Concurrent_vector_base_v4 &)
 
_CRTIMP2 void _Internal_resize (_Size_type _New_size, _Size_type _Element_size, _Size_type _Max_size, _My_internal_array_op1 _Destroy, _My_internal_array_op2 _Init, const void *_Src)
 
_CRTIMP2 _Size_type _Internal_grow_to_at_least_with_result (_Size_type _New_size, _Size_type _Element_size, _My_internal_array_op2 _Init, const void *_Src)
 

Static Protected Member Functions

static _CRTIMP2 _Segment_index_t __cdecl _Segment_index_of (_Size_type _Index)
 
static _Segment_index_t _Segment_base (_Segment_index_t _K)
 
static _Segment_index_t _Segment_base_index_of (_Segment_index_t &_Index)
 
static _Size_type _Segment_size (_Segment_index_t _K)
 

Protected Attributes

_Segment_t _My_storage [_Pointers_per_short_table]
 
_Subatomic< _Size_type_My_first_block
 
_Subatomic< _Size_type_My_early_size
 
_Subatomic< _Segment_t * > _My_segment
 

Static Protected Attributes

static const _Segment_index_t _Default_initial_segments = 1
 
static const _Segment_index_t _Pointers_per_short_table = 3
 
static const _Segment_index_t _Pointers_per_long_table = sizeof(_Segment_index_t) * 8
 

Friends

class _Helper
 

Member Typedef Documentation

typedef void(__cdecl * Concurrency::details::_Concurrent_vector_base_v4::_My_internal_array_op1) (void *_Begin, _Size_type _N)
protected
typedef void(__cdecl * Concurrency::details::_Concurrent_vector_base_v4::_My_internal_array_op2) (void *_Dst, const void *_Src, _Size_type _N)
protected

Constructor & Destructor Documentation

Concurrency::details::_Concurrent_vector_base_v4::_Concurrent_vector_base_v4 ( )
inlineprotected
95  {
96  _My_early_size = 0;
97  _My_first_block = 0; // here is not _Default_initial_segments
98  for( _Segment_index_t _I = 0; _I < _Pointers_per_short_table; _I++)
99  _My_storage[_I]._My_array = NULL;
101  }
#define NULL
Definition: crtdbg.h:30
size_t _Segment_index_t
Definition: concurrent_vector.h:68
_Subatomic< _Size_type > _My_early_size
Definition: concurrent_vector.h:158
static const _Segment_index_t _Pointers_per_short_table
Definition: concurrent_vector.h:75
_Subatomic< _Size_type > _My_first_block
Definition: concurrent_vector.h:155
_Segment_t _My_storage[_Pointers_per_short_table]
Definition: concurrent_vector.h:90
_Subatomic< _Segment_t * > _My_segment
Definition: concurrent_vector.h:161
_CRTIMP2 Concurrency::details::_Concurrent_vector_base_v4::~_Concurrent_vector_base_v4 ( )
protected

Member Function Documentation

_CRTIMP2 void Concurrency::details::_Concurrent_vector_base_v4::_Internal_assign ( const _Concurrent_vector_base_v4 _Src,
_Size_type  _Element_size,
_My_internal_array_op1  _Destroy,
_My_internal_array_op2  _Assign,
_My_internal_array_op2  _Copy 
)
protected
_CRTIMP2 _Size_type Concurrency::details::_Concurrent_vector_base_v4::_Internal_capacity ( ) const
protected
_CRTIMP2 _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Internal_clear ( _My_internal_array_op1  _Destroy)
protected
_CRTIMP2 void* Concurrency::details::_Concurrent_vector_base_v4::_Internal_compact ( _Size_type  _Element_size,
void _Table,
_My_internal_array_op1  _Destroy,
_My_internal_array_op2  _Copy 
)
protected
_CRTIMP2 void Concurrency::details::_Concurrent_vector_base_v4::_Internal_copy ( const _Concurrent_vector_base_v4 _Src,
_Size_type  _Element_size,
_My_internal_array_op2  _Copy 
)
protected
void Concurrency::details::_Concurrent_vector_base_v4::_Internal_grow ( _Size_type  _Start,
_Size_type  _Finish,
_Size_type  _Element_size,
_My_internal_array_op2  _Init,
const void _Src 
)
protected
_CRTIMP2 _Size_type Concurrency::details::_Concurrent_vector_base_v4::_Internal_grow_by ( _Size_type  _Delta,
_Size_type  _Element_size,
_My_internal_array_op2  _Init,
const void _Src 
)
protected
_Size_type Concurrency::details::_Concurrent_vector_base_v4::_Internal_grow_segment ( const _Size_type  _Start,
_Size_type  _Finish,
_Size_type  _Element_size,
_Segment_t **  _PPSegment,
_Size_type _PSegStart,
_Size_type _PSegFinish 
)
protected
_CRTIMP2 _Size_type Concurrency::details::_Concurrent_vector_base_v4::_Internal_grow_to_at_least_with_result ( _Size_type  _New_size,
_Size_type  _Element_size,
_My_internal_array_op2  _Init,
const void _Src 
)
protected
_CRTIMP2 void* Concurrency::details::_Concurrent_vector_base_v4::_Internal_push_back ( _Size_type  _Element_size,
_Size_type _Index 
)
protected
_CRTIMP2 void Concurrency::details::_Concurrent_vector_base_v4::_Internal_reserve ( _Size_type  _N,
_Size_type  _Element_size,
_Size_type  _Max_size 
)
protected
_CRTIMP2 void Concurrency::details::_Concurrent_vector_base_v4::_Internal_resize ( _Size_type  _New_size,
_Size_type  _Element_size,
_Size_type  _Max_size,
_My_internal_array_op1  _Destroy,
_My_internal_array_op2  _Init,
const void _Src 
)
protected
_CRTIMP2 void Concurrency::details::_Concurrent_vector_base_v4::_Internal_swap ( _Concurrent_vector_base_v4 )
protected
_CRTIMP2 void Concurrency::details::_Concurrent_vector_base_v4::_Internal_throw_exception ( _Size_type  ) const
protected
void Concurrency::details::_Concurrent_vector_base_v4::_Internal_truncate ( _Size_type  _Old_size,
_Size_type  _New_size,
_Size_type  _Element_size,
_My_internal_array_op1  _Destroy 
)
protected
void* __cdecl* Concurrency::details::_Concurrent_vector_base_v4::_My_vector_allocator_ptr ( _Concurrent_vector_base_v4 ,
size_t   
)
protected
static _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Segment_base ( _Segment_index_t  _K)
inlinestaticprotected
107  {
108  return (_Segment_index_t(1)<<_K & ~_Segment_index_t(1));
109  }
size_t _Segment_index_t
Definition: concurrent_vector.h:68
static _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Segment_base_index_of ( _Segment_index_t _Index)
inlinestaticprotected
112  {
113  _Segment_index_t _K = _Segment_index_of( _Index );
114  _Index -= _Segment_base(_K);
115  return _K;
116  }
size_t _Segment_index_t
Definition: concurrent_vector.h:68
static _Segment_index_t _Segment_base(_Segment_index_t _K)
Definition: concurrent_vector.h:106
static _CRTIMP2 _Segment_index_t __cdecl _Segment_index_of(_Size_type _Index)
static _CRTIMP2 _Segment_index_t __cdecl Concurrency::details::_Concurrent_vector_base_v4::_Segment_index_of ( _Size_type  _Index)
staticprotected
static _Size_type Concurrency::details::_Concurrent_vector_base_v4::_Segment_size ( _Segment_index_t  _K)
inlinestaticprotected
119  {
120  return _Segment_index_t(1)<<_K; // fake value for _K==0
121  }
size_t _Segment_index_t
Definition: concurrent_vector.h:68

Friends And Related Function Documentation

friend class _Helper
friend

Member Data Documentation

const _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Default_initial_segments = 1
staticprotected
_Subatomic<_Size_type> Concurrency::details::_Concurrent_vector_base_v4::_My_early_size
protected
_Subatomic<_Size_type> Concurrency::details::_Concurrent_vector_base_v4::_My_first_block
protected
_Subatomic<_Segment_t*> Concurrency::details::_Concurrent_vector_base_v4::_My_segment
protected
_Segment_t Concurrency::details::_Concurrent_vector_base_v4::_My_storage[_Pointers_per_short_table]
protected
const _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Pointers_per_long_table = sizeof(_Segment_index_t) * 8
staticprotected
const _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Pointers_per_short_table = 3
staticprotected

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