Mercurial > cgi-bin > hgwebdir.cgi > VMS > C_Libraries > DynArray
comparison DynArray.h @ 14:9de0a9369134
added eol handling and .brch__default to indicate brch (and reason for it)
| author | Me@portablequad |
|---|---|
| date | Sat, 11 Feb 2012 17:43:20 -0800 |
| parents | f9776626259b |
| children | 62b3a4793b6e |
comparison
equal
deleted
inserted
replaced
| 5:ad2cd7c19808 | 7:c1c97360d625 |
|---|---|
| 5 * Created on May 14, 2010, 3:08 PM | 5 * Created on May 14, 2010, 3:08 PM |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef _DYNARRAY_H | 8 #ifndef _DYNARRAY_H |
| 9 #define _DYNARRAY_H | 9 #define _DYNARRAY_H |
| 10 | |
| 11 #include "../../VMS_Implementations/VMS_impl/VMS_primitive_data_types.h" | |
| 12 | 10 |
| 13 | 11 |
| 14 //A dynamic array is same as any other array, but add a DynArrayInfo next | 12 //A dynamic array is same as any other array, but add a DynArrayInfo next |
| 15 // to it. Accesses and updates of array indexes are done normally, it's | 13 // to it. Accesses and updates of array indexes are done normally, it's |
| 16 // only when add a new element into array that use the extra info. | 14 // only when add a new element into array that use the extra info. |
| 20 { | 18 { |
| 21 void ***addrOfPtrToArray; //addr of array of ptrs == triple * | 19 void ***addrOfPtrToArray; //addr of array of ptrs == triple * |
| 22 int32 numInArray; | 20 int32 numInArray; |
| 23 int32 sizeOfArray; | 21 int32 sizeOfArray; |
| 24 } | 22 } |
| 25 DynArrayInfo; | 23 PrivDynArrayInfo; |
| 26 | 24 |
| 27 DynArrayInfo * | 25 PrivDynArrayInfo * |
| 28 makeDynArrayInfoFrom( void ***addrOfPtrToArray, int32 sizeOfArray ); | 26 makePrivDynArrayInfoFrom( void ***addrOfPtrToArray, int32 sizeOfArray ); |
| 29 | 27 |
| 30 DynArrayInfo * | 28 PrivDynArrayInfo * |
| 31 makeDynArrayOfSize( void ***addrOfPtrToArray, int32 sizeOfArray ); | 29 makePrivDynArrayOfSize( void ***addrOfPtrToArray, int32 sizeOfArray ); |
| 30 | |
| 31 PrivDynArrayInfo * | |
| 32 makePrivDynArrayOfSize_Ext( void ***addrOfPtrToArray, int32 sizeOfArray ); | |
| 32 | 33 |
| 33 int32 | 34 int32 |
| 34 addToDynArray( void *value, DynArrayInfo *info ); | 35 addToDynArray( void *value, PrivDynArrayInfo *info ); |
| 35 | 36 |
| 36 void | 37 void |
| 37 makeHighestDynArrayIndexBe( DynArrayInfo *info, int32 highestIndex ); | 38 makeHighestDynArrayIndexBe( PrivDynArrayInfo *info, int32 highestIndex ); |
| 38 | 39 |
| 39 void | 40 void |
| 40 increaseSizeOfDynArrayTo( DynArrayInfo *info, int32 newSize ); | 41 makeHighestDynArrayIndexBeAtLeast(PrivDynArrayInfo *info,int32 highestIndex); |
| 42 | |
| 43 void | |
| 44 increaseSizeOfDynArrayTo( PrivDynArrayInfo *info, int32 newSize ); | |
| 41 | 45 |
| 42 typedef void (*FreeFnPtr) ( void * ); //fn has to cast void * to whatever | 46 typedef void (*FreeFnPtr) ( void * ); //fn has to cast void * to whatever |
| 43 | 47 |
| 44 void | 48 void |
| 45 freeDynArrayDeep( DynArrayInfo *info, FreeFnPtr freeFnPtr ); | 49 freeDynArrayDeep( PrivDynArrayInfo *info, FreeFnPtr freeFnPtr ); |
| 46 | 50 |
| 47 void | 51 void |
| 48 freeDynArrayFlat( DynArrayInfo *info ); | 52 freeDynArrayFlat( PrivDynArrayInfo *info ); |
| 49 | 53 |
| 50 | 54 |
| 51 typedef void (*DynArrayFnPtr) ( void * ); //fn has to cast void * | 55 typedef void (*DynArrayFnPtr) ( void * ); //fn has to cast void * |
| 52 | 56 |
| 53 void | 57 void |
| 54 forAllInDynArrayDo( DynArrayInfo *info, DynArrayFnPtr fnPtr ); | 58 forAllInDynArrayDo( PrivDynArrayInfo *info, DynArrayFnPtr fnPtr ); |
| 55 | 59 |
| 56 #endif /* _DYNARRAY_H */ | 60 #endif /* _DYNARRAY_H */ |
| 57 | 61 |
