00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __ALICEML_ARRAY__
00028 #define __ALICEML_ARRAY__
00029
00030 #include "aliceml.h"
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036 typedef struct ML_Array ML_Array;
00037
00039 ALICEMLAPI ML_Array * ALICEMLCALL
00040 ML_Array_Create(ML_Callback_Insert insert, ML_Callback_Remove remove);
00041
00043 ALICEMLAPI void ALICEMLCALL
00044 ML_Array_Destroy(ML_Array *array);
00045
00047 ALICEMLAPI void ** ALICEMLCALL
00048 ML_Array_GetHead(ML_Array *array);
00049
00051 ALICEMLAPI int ALICEMLCALL
00052 ML_Array_GetSize(const ML_Array *array);
00053
00055 ALICEMLAPI int ALICEMLCALL
00056 ML_Array_GetCapacity(const ML_Array *array);
00057
00059 ALICEMLAPI int ALICEMLCALL
00060 ML_Array_Resize(ML_Array *array, int size);
00061
00063 ALICEMLAPI int ALICEMLCALL
00064 ML_Array_Reserve(ML_Array *array, int capacity);
00065
00067 ALICEMLAPI int ALICEMLCALL
00068 ML_Array_Find(const ML_Array *array, const void *elem);
00069
00071 ALICEMLAPI int ALICEMLCALL
00072 ML_Array_FindIf(const ML_Array *array, const void *elem,
00073 ML_Comparator compare);
00074
00076 ALICEMLAPI void * ALICEMLCALL
00077 ML_Array_Get(ML_Array *array, int where);
00078
00080 ALICEMLAPI void * ALICEMLCALL
00081 ML_Array_GetFront(ML_Array *array);
00082
00084 ALICEMLAPI void * ALICEMLCALL
00085 ML_Array_GetBack(ML_Array *array);
00086
00088 ALICEMLAPI int ALICEMLCALL
00089 ML_Array_Set(ML_Array *array, int where, void *elem);
00090
00092 ALICEMLAPI int ALICEMLCALL
00093 ML_Array_SetFront(ML_Array *array, void *elem);
00094
00096 ALICEMLAPI int ALICEMLCALL
00097 ML_Array_SetBack(ML_Array *array, void *elem);
00098
00100 ALICEMLAPI int ALICEMLCALL
00101 ML_Array_Insert(ML_Array *array, int where, void *elem);
00102
00104 ALICEMLAPI int ALICEMLCALL
00105 ML_Array_PushFront(ML_Array *array, void *elem);
00106
00108 ALICEMLAPI int ALICEMLCALL
00109 ML_Array_PushBack(ML_Array *array, void *elem);
00110
00112 ALICEMLAPI int ALICEMLCALL
00113 ML_Array_Clear(ML_Array *array);
00114
00119 ALICEMLAPI int ALICEMLCALL
00120 ML_Array_EraseRange(ML_Array *array, int begin, int end);
00121
00123 ALICEMLAPI int ALICEMLCALL
00124 ML_Array_Erase(ML_Array *array, int where);
00125
00127 ALICEMLAPI int ALICEMLCALL
00128 ML_Array_Remove(ML_Array *array, void *elem);
00129
00131 ALICEMLAPI int ALICEMLCALL
00132 ML_Array_PopFront(ML_Array *array);
00133
00135 ALICEMLAPI int ALICEMLCALL
00136 ML_Array_PopBack(ML_Array *array);
00137
00138 #ifdef __cplusplus
00139 }
00140 #endif
00141
00142 #endif