• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

spl/collection/cvector.h

00001 //~ #ifndef _vector_h
00002 //~ #define _vector_h
00003 
00004 //~ #ifdef _WIN32
00005 //~ #include <spl/configwin32.h>
00006 //~ #endif
00007 
00008 //~ #include <spl/debug.h>
00009 //~ #include <spl/collection/carray.h>
00010 
00011 //~ #ifdef __cplusplus
00012 //~ extern "C" {
00013 //~ #endif
00014 
00015 //~ typedef struct _vector
00016 //~ {
00017         //~ darray *data;
00018         //~ int top;
00019         //~ int pos;
00020 //~ } vector;
00021 
00022 //~ vector *vectorConstruct( const int elementSize );
00023 //~ vector *vectorIntern( byte *data, const int count, const int elementSize );
00024 //~ void vectorDestruct( vector *vec );
00025 
00026 //~ #ifdef DEBUG2
00027 //~ void vectorClear( vector *vec );
00028 //~ int vectorCount( const vector *vec );
00029 //~ bool vectorAdd( vector *vec, void *vp );
00030 //~ void *vectorElementAt( const vector *vec, const int pos );
00031 //~ void *vectorDataElementAt( const vector *vec, const int pos );
00032 //~ void *vectorDataPeek( const vector *vec );
00033 //~ #else
00034 //~ #define vectorClear(vec) (vec)->top = 0
00035 //~ #define vectorCount(vec) (vec->top)
00036 //~ #define vectorAdd(vec,vp) arraySetElement((vec)->data,(vp),(vec)->top++ )
00037 //~ #define vectorElementAt(vec,pos) ((void *)(( (pos) >= (vec)->top ) ? NULL : *(void **)arrayGetElement( (vec)->data, (pos) )))
00038 //~ #define vectorDataElementAt(vec,pos) ((void *)(( (pos) >= (vec)->top ) ? NULL : arrayGetElement( (vec)->data, (pos) )))
00039 //~ #define vectorDataPeek(vec) ( ((vec)->top == 0) ? NULL : arrayGetElement( (vec)->data, (vec)->top - 1 ))
00040 //~ #endif
00041 //~ bool vectorSetElementAt( vector *vec, void *vp, const int pos );
00042 //~ void vectorRemoveAt( vector *vec, const int pos );
00043 //~ void *vectorPop( vector *vec );
00044 //~ void *vectorPeek( const vector *vec );
00045 //~ void vectorBeginIter( vector *vec );
00046 //~ void *vectorDataNext( vector *vec );
00047 //~ void *vectorNext( vector *vec );
00048 //~ void *vectorDataPop( vector *vec );
00049 
00050 //~ #if defined( DEBUG ) || defined( _DEBUG )
00051 //~ void vectorValidateMem( const vector *vec );
00052 //~ void vectorCheckMem( const vector *vec );
00053 //~ #else
00054 //~ #define vectorValidateMem( vec )
00055 //~ #define vectorCheckMem( vec )
00056 //~ #endif
00057 
00058 //~ #ifdef __cplusplus
00059 //~ }
00060 //~ #endif
00061 
00062 
00063 //~ #endif