Patch from Scott McKellar:
[OpenSRF.git] / include / opensrf / string_array.h
index 805e1e2..b78b0b8 100644 (file)
@@ -1,28 +1,38 @@
 #include <stdio.h>
 
-#include "opensrf/generic_utils.h"
+#include <opensrf/utils.h>
+#include <opensrf/log.h>
+#include <opensrf/osrf_list.h>
 
-#define STRING_ARRAY_MAX_SIZE 1024
+#define STRING_ARRAY_MAX_SIZE 4096
 
 #ifndef STRING_ARRAY_H
 #define STRING_ARRAY_H
 
+#define OSRF_STRING_ARRAY_FREE(arr)\
+    if(arr) {osrfListFree(arr->list); free(arr);}
+        
+
 struct string_array_struct {
-               char** array;   
-               int size;
-               int arr_size;
-               int total_string_size;
+    osrfList* list;
+    int size;
 };
-typedef struct string_array_struct string_array;
+typedef struct string_array_struct osrfStringArray;
+
+osrfStringArray* osrfNewStringArray(int size);
+
+void osrfStringArrayAdd(osrfStringArray*, char* str);
+
+char* osrfStringArrayGetString(osrfStringArray* arr, int index);
 
-string_array* init_string_array(int size);
-void string_array_add(string_array*, char* string);
+/* returns true if this array contains the given string */
+int osrfStringArrayContains( osrfStringArray* arr, char* string );
 
-char* string_array_get_string(string_array* arr, int index);
-void string_array_destroy(string_array*);
+void osrfStringArrayFree(osrfStringArray*);
 
 /* total size of all included strings */
-int string_array_get_total_size(string_array* arr);
+int string_array_get_total_size(osrfStringArray* arr);
 
+void osrfStringArrayRemove( osrfStringArray* arr, char* str);
 
 #endif