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