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 ()
 
_CONCRTIMP ~_Concurrent_vector_base_v4 ()
 
_CONCRTIMP void _Internal_reserve (_Size_type _N, _Size_type _Element_size, _Size_type _Max_size)
 
_CONCRTIMP _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)
 
_CONCRTIMP _Size_type _Internal_grow_by (_Size_type _Delta, _Size_type _Element_size, _My_internal_array_op2 _Init, const void *_Src)
 
_CONCRTIMP void_Internal_push_back (_Size_type _Element_size, _Size_type &_Index)
 
_CONCRTIMP _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)
 
_CONCRTIMP void_Internal_compact (_Size_type _Element_size, void *_Table, _My_internal_array_op1 _Destroy, _My_internal_array_op2 _Copy)
 
_CONCRTIMP void _Internal_copy (const _Concurrent_vector_base_v4 &_Src, _Size_type _Element_size, _My_internal_array_op2 _Copy)
 
_CONCRTIMP 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)
 
_CONCRTIMP void _Internal_throw_exception (_Size_type) const
 
_CONCRTIMP void _Internal_swap (_Concurrent_vector_base_v4 &)
 
_CONCRTIMP 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)
 
_CONCRTIMP _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 _CONCRTIMP _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
97  {
98  _My_early_size = 0;
99  _My_first_block = 0; // here is not _Default_initial_segments
100  for( _Segment_index_t _I = 0; _I < _Pointers_per_short_table; _I++)
101  _My_storage[_I]._My_array = NULL;
103  }
size_t _Segment_index_t
Definition: concurrent_vector.h:70
_Subatomic< _Size_type > _My_early_size
Definition: concurrent_vector.h:160
static const _Segment_index_t _Pointers_per_short_table
Definition: concurrent_vector.h:77
_Subatomic< _Size_type > _My_first_block
Definition: concurrent_vector.h:157
_Segment_t _My_storage[_Pointers_per_short_table]
Definition: concurrent_vector.h:92
_Subatomic< _Segment_t * > _My_segment
Definition: concurrent_vector.h:163
#define NULL
Definition: corecrt.h:158
_CONCRTIMP Concurrency::details::_Concurrent_vector_base_v4::~_Concurrent_vector_base_v4 ( )
protected

Member Function Documentation

_CONCRTIMP 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
_CONCRTIMP _Size_type Concurrency::details::_Concurrent_vector_base_v4::_Internal_capacity ( ) const
protected
_CONCRTIMP _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Internal_clear ( _My_internal_array_op1  _Destroy)
protected
_CONCRTIMP 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
_CONCRTIMP 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
_CONCRTIMP _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
_CONCRTIMP _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
_CONCRTIMP void* Concurrency::details::_Concurrent_vector_base_v4::_Internal_push_back ( _Size_type  _Element_size,
_Size_type _Index 
)
protected
_CONCRTIMP void Concurrency::details::_Concurrent_vector_base_v4::_Internal_reserve ( _Size_type  _N,
_Size_type  _Element_size,
_Size_type  _Max_size 
)
protected
_CONCRTIMP 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
_CONCRTIMP void Concurrency::details::_Concurrent_vector_base_v4::_Internal_swap ( _Concurrent_vector_base_v4 )
protected
_CONCRTIMP 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
109  {
110  return (_Segment_index_t(1)<<_K & ~_Segment_index_t(1));
111  }
size_t _Segment_index_t
Definition: concurrent_vector.h:70
static _Segment_index_t Concurrency::details::_Concurrent_vector_base_v4::_Segment_base_index_of ( _Segment_index_t _Index)
inlinestaticprotected
114  {
116  _Index -= _Segment_base(_K);
117  return _K;
118  }
static _CONCRTIMP _Segment_index_t __cdecl _Segment_index_of(_Size_type _Index)
_In_ size_t _In_ int _Index
Definition: time.h:102
size_t _Segment_index_t
Definition: concurrent_vector.h:70
static _Segment_index_t _Segment_base(_Segment_index_t _K)
Definition: concurrent_vector.h:108
static _CONCRTIMP _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
121  {
122  return _Segment_index_t(1)<<_K; // fake value for _K==0
123  }
size_t _Segment_index_t
Definition: concurrent_vector.h:70

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: