Merging changes from branches/new-json2
[OpenSRF.git] / include / opensrf / string_array.h
1 #include <stdio.h>
2
3 #include <opensrf/utils.h>
4 #include <opensrf/log.h>
5 #include <opensrf/osrf_list.h>
6
7 #define STRING_ARRAY_MAX_SIZE 4096
8
9 #ifndef STRING_ARRAY_H
10 #define STRING_ARRAY_H
11
12 #define OSRF_STRING_ARRAY_FREE(arr)\
13     if(arr) {osrfListFree(arr->list); free(arr);}
14         
15
16 struct string_array_struct {
17     osrfList* list;
18     int size;
19 };
20 typedef struct string_array_struct string_array;
21 typedef struct string_array_struct osrfStringArray;
22
23 osrfStringArray* init_string_array(int size);
24 osrfStringArray* osrfNewStringArray(int size);
25
26 void string_array_add(osrfStringArray*, char* string);
27 void osrfStringArrayAdd(osrfStringArray*, char* string);
28
29 char* string_array_get_string(osrfStringArray* arr, int index);
30 char* osrfStringArrayGetString(osrfStringArray* arr, int index);
31
32 /* returns true if this array contains the given string */
33 int osrfStringArrayContains( osrfStringArray* arr, char* string );
34
35
36 void string_array_destroy(osrfStringArray*);
37 void osrfStringArrayFree(osrfStringArray*);
38
39 /* total size of all included strings */
40 int string_array_get_total_size(osrfStringArray* arr);
41
42 void osrfStringArrayRemove( osrfStringArray* arr, char* str);
43
44 #endif