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 ML_Array_Create(ML_Callback_Insert insert, ML_Callback_Remove remove);
00040
00042 ALICEMLAPI void ALICEMLCALL ML_Array_Destroy(ML_Array *array);
00043
00045 ALICEMLAPI void ** ALICEMLCALL ML_Array_GetHead(ML_Array *array);
00046
00048 ALICEMLAPI int ALICEMLCALL ML_Array_GetSize(const ML_Array *array);
00049
00051 ALICEMLAPI int ALICEMLCALL ML_Array_GetCapacity(const ML_Array *array);
00052
00054 ALICEMLAPI int ALICEMLCALL ML_Array_Resize(ML_Array *array, int size);
00055
00057 ALICEMLAPI int ALICEMLCALL ML_Array_Reserve(ML_Array *array, int capacity);
00058
00060 ALICEMLAPI int ALICEMLCALL ML_Array_Find(const ML_Array *array, const void *elem);
00061
00063 ALICEMLAPI int ALICEMLCALL ML_Array_FindIf(const ML_Array *array, const void *elem, ML_Comparator compare);
00064
00066 ALICEMLAPI void * ALICEMLCALL ML_Array_Get(ML_Array *array, int where);
00067
00069 ALICEMLAPI void * ALICEMLCALL ML_Array_GetFront(ML_Array *array);
00070
00072 ALICEMLAPI void * ALICEMLCALL ML_Array_GetBack(ML_Array *array);
00073
00075 ALICEMLAPI int ALICEMLCALL ML_Array_Set(ML_Array *array, int where, void *elem);
00076
00078 ALICEMLAPI int ALICEMLCALL ML_Array_SetFront(ML_Array *array, void *elem);
00079
00081 ALICEMLAPI int ALICEMLCALL ML_Array_SetBack(ML_Array *array, void *elem);
00082
00084 ALICEMLAPI int ALICEMLCALL ML_Array_Insert(ML_Array *array, int where, void *elem);
00085
00087 ALICEMLAPI int ALICEMLCALL ML_Array_PushFront(ML_Array *array, void *elem);
00088
00090 ALICEMLAPI int ALICEMLCALL ML_Array_PushBack(ML_Array *array, void *elem);
00091
00093 ALICEMLAPI int ALICEMLCALL ML_Array_Clear(ML_Array *array);
00094
00099 ALICEMLAPI int ALICEMLCALL ML_Array_EraseRange(ML_Array *array, int begin, int end);
00100
00102 ALICEMLAPI int ALICEMLCALL ML_Array_Erase(ML_Array *array, int where);
00103
00105 ALICEMLAPI int ALICEMLCALL ML_Array_Remove(ML_Array *array, void *elem);
00106
00108 ALICEMLAPI int ALICEMLCALL ML_Array_PopFront(ML_Array *array);
00109
00111 ALICEMLAPI int ALICEMLCALL ML_Array_PopBack(ML_Array *array);
00112
00113 #ifdef __cplusplus
00114 }
00115 #endif
00116
00117 #endif