00001
00031 #ifndef __SPPOOL_H__
00032 #define __SPPOOL_H__
00033
00034 #include "spstring.h"
00035
00039 #define MAX_DIM_STRING_POOL 50
00040
00044 #define UNUSED_SLOT 0
00045
00049 #define USED_SLOT 1
00050
00055 typedef struct {
00057 string strings[MAX_DIM_STRING_POOL];
00061 uint used_counter;
00068 uint positions[MAX_DIM_STRING_POOL];
00069 } stringpool;
00070
00076 void sp_initialize_stringpool(stringpool* sp);
00077
00083 void sp_free_stringpool(stringpool* sp);
00084
00091 int sp_sizeof(const stringpool* sp);
00092
00098 bool sp_isempty(const stringpool* sp);
00099
00105 bool sp_isfull(const stringpool* sp);
00106
00114 int sp_find_string(const stringpool* sp, const string str);
00115
00124 string sp_get_string(const stringpool* sp, int pos);
00125
00131 void sp_add_string(stringpool* sp, const string str);
00132
00139 void sp_add_string_pos(stringpool* sp, const string str, int pos);
00140
00150 string sp_remove_string(stringpool* sp, int pos);
00151
00159 void sp_replace_string(stringpool* sp, int pos, string str);
00160
00167 int sp_save_to_file(stringpool* sp, const string fname);
00168
00175 int sp_load_from_file(stringpool* sp, const string fname);
00176
00182 void bubble_sort(stringpool* sp);
00183
00195 int bin_search(const stringpool* sp, const string str);
00196
00197 #endif