00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXUTIL_ARRAY_LIST_H
00019 #define AXUTIL_ARRAY_LIST_H
00020
00033 #include <axutil_utils_defines.h>
00034 #include <axutil_env.h>
00035
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040
00041 static const int AXIS2_ARRAY_LIST_DEFAULT_CAPACITY = 16;
00042
00046 typedef struct axutil_array_list axutil_array_list_t;
00047
00054 AXIS2_EXTERN axutil_array_list_t* AXIS2_CALL axutil_array_list_create(
00055 const axutil_env_t *env,
00056 int capacity);
00057
00063 AXIS2_EXTERN void AXIS2_CALL
00064 axutil_array_list_free_void_arg(
00065 void *array_list,
00066 const axutil_env_t *env);
00067
00077 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00078 axutil_array_list_ensure_capacity(
00079 struct axutil_array_list *array_list,
00080 const axutil_env_t *env,
00081 int min_capacity);
00082
00089 AXIS2_EXTERN int AXIS2_CALL
00090 axutil_array_list_size(
00091 struct axutil_array_list *array_list,
00092 const axutil_env_t *env);
00093
00100 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00101 axutil_array_list_is_empty(
00102 struct axutil_array_list *array_list,
00103 const axutil_env_t *env);
00104
00112 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00113 axutil_array_list_contains(
00114 struct axutil_array_list *array_list,
00115 const axutil_env_t *env,
00116 void *e);
00117
00127 AXIS2_EXTERN int AXIS2_CALL
00128 axutil_array_list_index_of(
00129 struct axutil_array_list *array_list,
00130 const axutil_env_t *env,
00131 void *e);
00132
00140 AXIS2_EXTERN void* AXIS2_CALL
00141 axutil_array_list_get(struct axutil_array_list *array_list,
00142 const axutil_env_t *env,
00143 int index);
00144
00154 AXIS2_EXTERN void* AXIS2_CALL
00155 axutil_array_list_set(
00156 struct axutil_array_list *array_list,
00157 const axutil_env_t *env,
00158 int index,
00159 void* e);
00160
00169 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00170 axutil_array_list_add(
00171 struct axutil_array_list *array_list,
00172 const axutil_env_t *env,
00173 const void* e);
00174
00185 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00186 axutil_array_list_add_at(
00187 struct axutil_array_list *array_list,
00188 const axutil_env_t *env,
00189 const int index,
00190 const void* e);
00191
00199 AXIS2_EXTERN void* AXIS2_CALL
00200 axutil_array_list_remove(struct axutil_array_list *array_list,
00201 const axutil_env_t *env,
00202 int index);
00203
00211 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00212 axutil_array_list_check_bound_inclusive(
00213 struct axutil_array_list *array_list,
00214 const axutil_env_t *env,
00215 int index);
00216
00224 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00225 axutil_array_list_check_bound_exclusive(
00226 struct axutil_array_list *array_list,
00227 const axutil_env_t *env,
00228 int index);
00229
00235 AXIS2_EXTERN void AXIS2_CALL
00236 axutil_array_list_free(
00237 struct axutil_array_list *array_list,
00238 const axutil_env_t *env);
00239
00240 #ifdef __cplusplus
00241 }
00242 #endif
00243
00244 #endif