commore  1.0.6-SNAPSHOT
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
commore::BaseArray Class Reference

#include <BaseArray.h>

+ Inheritance diagram for commore::BaseArray:

Classes

class  const_iterator
 
class  iterator
 

Public Member Functions

void splice (BaseArray &array)
 
size_t size () const
 
size_t reserved () const
 

Static Public Member Functions

static bool next_ (iterator &i, size_t item_size)
 
static bool next_ (const_iterator &i, size_t item_size)
 

Protected Member Functions

 BaseArray ()
 
Byteadd_ (size_t nb, size_t item_size, Byte *data, FunctionConstructor c, FunctionDestructor d)
 
void clear_ (size_t item_size, FunctionDestructor d, bool all)
 
void resize_ (int new_size, size_t item_size, FunctionConstructor c, FunctionDestructor d)
 
Byteat_ (size_t i, size_t item_size)
 
const Byteat_ (size_t i, size_t item_size) const
 
size_t reserve_ (size_t nb, size_t item_size, FunctionConstructor c, FunctionDestructor d)
 
Bytedata ()
 
const Bytedata () const
 
void begin_ (iterator &)
 
void begin_ (const_iterator &) const
 

Protected Attributes

Bytedata_
 
size_t size_
 
size_t reserved_
 

Detailed Description

Base class for Array implementation.

Remarks
Commore Arrays are designed for scalar type. other type are available but not used in commore internal. Do not use the Array template in place of stl vector.

Constructor & Destructor Documentation

BaseArray::BaseArray ( )
protected

Member Function Documentation

Byte * BaseArray::add_ ( size_t  nb,
size_t  item_size,
Byte data,
FunctionConstructor  c,
FunctionDestructor  d 
)
protected

Add value to the array

Parameters
nbnumber of item
item_sizesize of item in byte
datapointer item values
cconstructor function
ddestructor function
Returns
pointer on first added value
Byte * BaseArray::at_ ( size_t  i,
size_t  item_size 
)
protected

Return reference on i value of array.

Parameters
i
item_sizesize of item
Returns
0 if i is out of bound
const Byte * BaseArray::at_ ( size_t  i,
size_t  item_size 
) const
protected
void BaseArray::begin_ ( BaseArray::iterator r)
protected

Set iterator to begin of array

void BaseArray::begin_ ( BaseArray::const_iterator r) const
protected
void BaseArray::clear_ ( size_t  item_size,
FunctionDestructor  d,
bool  all 
)
protected

Delete content of Array

Parameters
item_sizesize of item
ddestructor function
alltrue = delete reserved data
Byte* commore::BaseArray::data ( )
inlineprotected

Raw data access

const Byte* commore::BaseArray::data ( ) const
inlineprotected
bool BaseArray::next_ ( iterator i,
size_t  item_size 
)
static
bool BaseArray::next_ ( const_iterator i,
size_t  item_size 
)
static
size_t BaseArray::reserve_ ( size_t  nb,
size_t  item_size,
FunctionConstructor  c,
FunctionDestructor  d 
)
protected

Reserve memory in the array

Parameters
nb
item_sizesize of item
cconstructor function
ddestructor function
Remarks
the effective reserded size will be a multiple of ARRAY_INITIAL_SIZE
size_t BaseArray::reserved ( ) const

Return number of object memory reserved in array

void BaseArray::resize_ ( int  new_size,
size_t  item_size,
FunctionConstructor  c,
FunctionDestructor  d 
)
protected

Resize array

Parameters
new_sizenew size
item_sizesize of item
cconstructor function
ddestructor function
Remarks
capacity is not modified. size will be updated.
when new size is less than current size: for non-scalar types, destructor are called on each removed object
size_t BaseArray::size ( ) const

Return number of object in the array

Examples:
/examples/coding/Array.cpp.
void BaseArray::splice ( BaseArray array)

Transfert array content to curent array

Member Data Documentation

Byte* commore::BaseArray::data_
protected
size_t commore::BaseArray::reserved_
protected
size_t commore::BaseArray::size_
protected

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