00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GWENHYWFAR_STRINGLIST2_H
00029 #define GWENHYWFAR_STRINGLIST2_H
00030
00031 #include <gwenhywfar/gwenhywfarapi.h>
00032 #include <gwenhywfar/stringlist.h>
00033 #include <gwenhywfar/types.h>
00034 #include <gwenhywfar/refptr.h>
00035 #include <gwenhywfar/list.h>
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00041 typedef struct GWEN_STRINGLIST2 GWEN_STRINGLIST2;
00042 typedef GWEN_LIST_ITERATOR GWEN_STRINGLIST2_ITERATOR;
00043
00044
00045 typedef enum {
00046 GWEN_StringList2_IntertMode_AlwaysAdd=0,
00047 GWEN_StringList2_IntertMode_NoDouble,
00048 GWEN_StringList2_IntertMode_Reuse
00049 } GWEN_STRINGLIST2_INSERTMODE;
00050
00051
00052 GWENHYWFAR_API
00053 GWEN_STRINGLIST2 *GWEN_StringList2_new();
00054 GWENHYWFAR_API
00055 void GWEN_StringList2_free(GWEN_STRINGLIST2 *sl2);
00056 GWENHYWFAR_API
00057 GWEN_STRINGLIST2 *GWEN_StringList2_dup(GWEN_STRINGLIST2 *sl2);
00058
00059
00066 GWENHYWFAR_API
00067 void GWEN_StringList2_SetSenseCase(GWEN_STRINGLIST2 *sl2, int i);
00068
00076 GWENHYWFAR_API
00077 void GWEN_StringList2_SetIgnoreRefCount(GWEN_STRINGLIST2 *sl2, int i);
00078
00086 GWENHYWFAR_API
00087 int GWEN_StringList2_AppendString(GWEN_STRINGLIST2 *sl2,
00088 const char *s,
00089 int take,
00090 GWEN_STRINGLIST2_INSERTMODE m);
00091
00099 GWENHYWFAR_API
00100 int GWEN_StringList2_InsertString(GWEN_STRINGLIST2 *sl2,
00101 const char *s,
00102 int take,
00103 GWEN_STRINGLIST2_INSERTMODE m);
00104
00109 GWENHYWFAR_API int GWEN_StringList2_RemoveString(GWEN_STRINGLIST2 *sl2,
00110 const char *s);
00111
00117 GWENHYWFAR_API int GWEN_StringList2_HasString(const GWEN_STRINGLIST2 *sl2,
00118 const char *s);
00119
00120
00121
00122
00123 GWENHYWFAR_API
00124 GWEN_STRINGLIST2_ITERATOR *GWEN_StringList2_First(const GWEN_STRINGLIST2 *l);
00125
00126
00127 GWENHYWFAR_API
00128 GWEN_STRINGLIST2_ITERATOR *GWEN_StringList2_Last(const GWEN_STRINGLIST2 *l);
00129
00130
00131 GWENHYWFAR_API
00132 void GWEN_StringList2Iterator_free(GWEN_STRINGLIST2_ITERATOR *li);
00133
00134
00135 GWENHYWFAR_API
00136 const char *GWEN_StringList2Iterator_Previous(GWEN_STRINGLIST2_ITERATOR *li);
00137
00138
00139 GWENHYWFAR_API
00140 const char *GWEN_StringList2Iterator_Next(GWEN_STRINGLIST2_ITERATOR *li);
00141
00142
00143 GWENHYWFAR_API
00144 const char *GWEN_StringList2Iterator_Data(GWEN_STRINGLIST2_ITERATOR *li);
00145
00146 GWENHYWFAR_API
00147 unsigned int
00148 GWEN_StringList2Iterator_GetLinkCount(const GWEN_STRINGLIST2_ITERATOR *li);
00149
00150
00151 GWENHYWFAR_API
00152 GWEN_REFPTR*
00153 GWEN_StringList2Iterator_DataRefPtr(GWEN_STRINGLIST2_ITERATOR *li);
00154
00155
00156 GWENHYWFAR_API void GWEN_StringList2_Dump(const GWEN_STRINGLIST2 *sl2);
00157
00158
00159
00160 #ifdef __cplusplus
00161 }
00162 #endif
00163
00164
00165 #endif
00166
00167