AString  0.2
A Lightweight C Language String Library
/home/Tom/Projects/astring/astringlist.h
浏览该文件的文档。
00001 
00010 #ifndef __A_STRING_LIST_H__
00011 #define __A_STRING_LIST_H__
00012 
00013 #include "astring.h"
00014 
00015 #define A_STRING_LIST_FLAG       102
00016 #define A_IS_STRING_LIST(string) (*(auchar *)string == A_STRING_LIST_FLAG)
00017 
00021 struct _AStringList {
00022         auchar             flag;  
00023         volatile aboolean  lock;  
00025         asize              length;  
00026         asize              allocated_len;  
00028         AString **         data;  
00029 };
00030 
00034 typedef int (*A_CMP)(const void *a, const void *b);
00038 typedef struct _AStringList AStringList;
00039 
00045 AStringList *   a_string_list_new          (void);
00054 AStringList *   a_string_list_assign       (AStringList *list,
00055                                             AString *string);
00056 
00066 AStringList *   a_string_list_assign_split (AStringList *list,
00067                                             AString *string,
00068                                             AString *split);
00075 AStringList *   a_string_list_load_from_file(const char * filename);
00083 AStringList *   a_string_list_append       (AStringList *list,
00084                                             AStringList *list2);
00092 AStringList *   a_string_list_prepend      (AStringList *list,
00093                                             AStringList *list2);
00102 AStringList *   a_string_list_add          (AStringList *list,
00103                                             AString *string);
00113 AStringList *   a_string_list_insert       (AStringList *list,
00114                                             asize index,
00115                                                                                         AString *string);
00123 AStringList *   a_string_list_delete       (AStringList *list,
00124                                             asize index);
00131 AStringList *   a_string_list_clear        (AStringList *list);
00140 AStringList *   a_string_list_exchange     (AStringList *list,
00141                                             asize index1,
00142                                                                                         asize index2);
00151 asize           a_string_list_find         (AStringList *list,
00152                                             AString *string,
00153                                                                                         asize index);
00163 asize                   a_string_list_find_name    (AStringList *list,
00164                                             AString *string,
00165                                                                                         asize index);
00175 AString *       a_string_list_get_value    (AStringList *list,
00176                                             asize index);
00185 AString *       a_string_list_get_index    (AStringList *list, 
00186                                             asize index);
00193 AStringList *   a_string_list_sort         (AStringList *list);
00201 AStringList *   a_string_list_sort_custom  (AStringList *list,
00202                                                                                         A_CMP cmp);
00209 aboolean        a_string_list_sorted       (AStringList *list);
00217 aboolean        a_string_list_sorted_custom(AStringList *list,
00218                                                                                         A_CMP cmp);
00226 AStringList *   a_string_list_dup          (AStringList *list);
00235 AString *       a_string_list_get_text     (AStringList *list, auchar returnchar);
00245 aboolean        a_string_list_save_to_file (AStringList *list,
00246                                             const char * filename,
00247                                             auchar returnchar);
00255 aboolean        a_string_list_equal       (AStringList *list1,
00256                                             AStringList *list2);
00262 void            a_string_list_free         (AStringList *list);
00263 
00264 #endif
00265