/* * str_array.h * * Created on: 13 oct. 2011 * Author: laurent */ #ifndef STR_ARRAY_H_ #define STR_ARRAY_H_ #include #include "str_string.h" typedef struct _strArrayItem { str *key; str *value; struct _strArrayItem *next; struct _strArrayItem *prev; } _strArrayItem; typedef struct { _strArrayItem *_firstArrayItem; _strArrayItem *_lastArrayItem; _strArrayItem *_iteratorItem; uint32_t length; uint32_t lengthMax; } strArray; strArray * strArrayNew(); void strArrayAddStr(strArray *a, str *key, str *value); void strArrayAddChar(strArray *a, char *key, char *value); void strArrayAddPrintf(strArray *a, char *key, const char *fmt, ...); void strArrayAddValueStr(strArray *a, str *value); void strArrayAddValueChar(strArray *a, char *value); void strArrayAddValuePrintf(strArray *a, const char *fmt, ...); uint8_t strArrayAsKey(strArray *a, str *key); str * strArrayGetValue(strArray *a, str *key); str * strArrayGetValueChar(strArray *a, char *key); void strUnSetKeyStr(strArray *a, str *key); void strUnSetKeyChar(strArray *a, char *key); void strArrayIteratorInit(strArray *a); void strArrayIteratorInitStr(strArray *a, str *key); void strArrayIteratorInitchar(strArray *a, char *key); _strArrayItem * strArrayIteratorGet(strArray *a); void strArrayIteratorNext(strArray *a); void strArrayIteratorPrev(strArray *a); void strArrayPrint(strArray *a); void strArrayFree(strArray *a); #endif