Linked-list Data Structure API.
[Code sample - String] // init a linked-list. qentry_t *entry = qEntry(); // insert a string element entry->putstr(entry, "str", "hello world", true); // get the string. char *str = entry->getstr(entry, "str", false); if(str != NULL) { printf("str = %s\n", str); free(str); } // print out all elements in the list. entry->print(entry, stdout, false); // free the list. entry->free(entry); [Result]
Functions | |
qentry_t * | qEntry (void) |
Create new qentry_t linked-list object. | |
static bool | _put (qentry_t *entry, const char *name, const void *data, size_t size, bool replace) |
qentry_t->put(): Store object into linked-list structure. | |
static bool | _putstr (qentry_t *entry, const char *name, const char *str, bool replace) |
qentry_t->putstr(): Add string object into linked-list structure. | |
static bool | _putstrf (qentry_t *entry, bool replace, const char *name, const char *format,...) |
qentry_t->putstrf(): Add formatted string object into linked-list structure. | |
static bool | _putint (qentry_t *entry, const char *name, int num, bool replace) |
qentry_t->putint(): Add integer object into linked-list structure. | |
static void * | _get (qentry_t *entry, const char *name, size_t *size, bool newmem) |
qentry_t->get(): Find object with given name | |
static void * | _getlast (qentry_t *entry, const char *name, size_t *size, bool newmem) |
qentry_t->getlast(): Find lastest matched object with given name. | |
static char * | _getstr (qentry_t *entry, const char *name, bool newmem) |
qentry_t->getstr(): Find string object with given name. | |
static char * | _getstrf (qentry_t *entry, bool newmem, const char *namefmt,...) |
qentry_t->_getstrf(): Find string object with given formatted name. | |
static char * | _getstrlast (qentry_t *entry, const char *name, bool newmem) |
qentry_t->getstrlast(): Find lastest matched string object with given name. | |
static int | _getint (qentry_t *entry, const char *name) |
qentry_t->getint(): Find integer object with given name. | |
static int | _getintlast (qentry_t *entry, const char *name) |
qentry_t->getintlast(): Find lastest matched integer object with given name. | |
static void * | _caseget (qentry_t *entry, const char *name, size_t *size, bool newmem) |
qentry_t->caseget(): Find object with given name. | |
static char * | _casegetstr (qentry_t *entry, const char *name, bool newmem) |
qentry_t->casegetstr(): Find string object with given name in case-insensitive way. | |
static int | _casegetint (qentry_t *entry, const char *name) |
qentry_t->casegetint(): Find integer object with given name in case-insensitive way. | |
static bool | _getnext (qentry_t *entry, qentobj_t *obj, const char *name, bool newmem) |
qentry_t->getnext(): Get next object structure. | |
static int | _size (qentry_t *entry) |
qentry_t->size(): Get total number of stored objects | |
static int | _remove (qentry_t *entry, const char *name) |
qentry_t->remove(): Remove matched objects as given name. | |
static bool | _truncate (qentry_t *entry) |
qentry_t->truncate(): Truncate qentry_t | |
static bool | _reverse (qentry_t *entry) |
qentry_t->reverse(): Reverse-sort internal stored object. | |
static bool | _save (qentry_t *entry, const char *filepath) |
qentry_t->save(): Save qentry_t as plain text format | |
static int | _load (qentry_t *entry, const char *filepath) |
qentry_t->load(): Load and append entries from given filepath | |
static bool | _print (qentry_t *entry, FILE *out, bool print_data) |
qentry_t->print(): Print out stored objects for debugging purpose. | |
static bool | _free (qentry_t *entry) |
qentry_t->free(): Free qentry_t |
qentry_t* qEntry | ( | void | ) |
static bool _put | ( | qentry_t * | entry, | |
const char * | name, | |||
const void * | data, | |||
size_t | size, | |||
bool | replace | |||
) | [static] |
qentry_t->put(): Store object into linked-list structure.
entry | qentry_t pointer | |
name | key name. | |
object | object pointer | |
size | size of the object | |
replace | in case of false, just insert. in case of true, remove all same key then insert object if found. |
static bool _putstr | ( | qentry_t * | entry, | |
const char * | name, | |||
const char * | str, | |||
bool | replace | |||
) | [static] |
qentry_t->putstr(): Add string object into linked-list structure.
entry | qentry_t pointer | |
name | key name. | |
str | string value | |
replace | in case of false, just insert. in case of true, remove all same key then insert object if found. |
static bool _putstrf | ( | qentry_t * | entry, | |
bool | replace, | |||
const char * | name, | |||
const char * | format, | |||
... | ||||
) | [static] |
qentry_t->putstrf(): Add formatted string object into linked-list structure.
entry | qentry_t pointer | |
replace | in case of false, just insert. in case of true, remove all same key then insert object if found. | |
name | key name. | |
format | formatted value string |
static bool _putint | ( | qentry_t * | entry, | |
const char * | name, | |||
int | num, | |||
bool | replace | |||
) | [static] |
qentry_t->putint(): Add integer object into linked-list structure.
entry | qentry_t pointer | |
name | key name. | |
num | number value | |
replace | in case of false, just insert. in case of true, remove all same key then insert object if found. |
static void* _get | ( | qentry_t * | entry, | |
const char * | name, | |||
size_t * | size, | |||
bool | newmem | |||
) | [static] |
qentry_t->get(): Find object with given name
entry | qentry_t pointer | |
name | key name | |
size | if size is not NULL, object size will be stored. | |
newmem | whether or not to allocate memory for the data. |
qentry_t *entry = qEntry(); (...codes...) // with newmem flag unset size_t size; const char *data = entry->get(entry, "key_name", &size, false); // with newmem flag set size_t size; char *data = entry->get(entry, "key_name", &size, true); if(data != NULL) free(data);
static void* _getlast | ( | qentry_t * | entry, | |
const char * | name, | |||
size_t * | size, | |||
bool | newmem | |||
) | [static] |
qentry_t->getlast(): Find lastest matched object with given name.
entry | qentry_t pointer | |
name | key name | |
size | if size is not NULL, object size will be stored. | |
newmem | whether or not to allocate memory for the data. |
static char* _getstr | ( | qentry_t * | entry, | |
const char * | name, | |||
bool | newmem | |||
) | [static] |
qentry_t->getstr(): Find string object with given name.
entry | qentry_t pointer | |
name | key name | |
newmem | whether or not to allocate memory for the data. |
static char* _getstrf | ( | qentry_t * | entry, | |
bool | newmem, | |||
const char * | namefmt, | |||
... | ||||
) | [static] |
qentry_t->_getstrf(): Find string object with given formatted name.
entry | qentry_t pointer | |
newmem | whether or not to allocate memory for the data. | |
namefmt | formatted name string |
static char* _getstrlast | ( | qentry_t * | entry, | |
const char * | name, | |||
bool | newmem | |||
) | [static] |
qentry_t->getstrlast(): Find lastest matched string object with given name.
entry | qentry_t pointer | |
name | key name | |
newmem | whether or not to allocate memory for the data. |
static int _getint | ( | qentry_t * | entry, | |
const char * | name | |||
) | [static] |
qentry_t->getint(): Find integer object with given name.
entry | qentry_t pointer | |
name | key name |
static int _getintlast | ( | qentry_t * | entry, | |
const char * | name | |||
) | [static] |
qentry_t->getintlast(): Find lastest matched integer object with given name.
entry | qentry_t pointer | |
name | key name |
static void* _caseget | ( | qentry_t * | entry, | |
const char * | name, | |||
size_t * | size, | |||
bool | newmem | |||
) | [static] |
qentry_t->caseget(): Find object with given name.
(case-insensitive)
entry | qentry_t pointer | |
name | key name | |
size | if size is not NULL, object size will be stored. | |
newmem | whether or not to allocate memory for the data. |
static char* _casegetstr | ( | qentry_t * | entry, | |
const char * | name, | |||
bool | newmem | |||
) | [static] |
qentry_t->casegetstr(): Find string object with given name in case-insensitive way.
entry | qentry_t pointer | |
name | key name | |
newmem | whether or not to allocate memory for the data. |
static int _casegetint | ( | qentry_t * | entry, | |
const char * | name | |||
) | [static] |
qentry_t->casegetint(): Find integer object with given name in case-insensitive way.
entry | qentry_t pointer | |
name | key name |
qentry_t->getnext(): Get next object structure.
entry | qentry_t pointer | |
obj | found data will be stored in this object | |
name | key name, if key name is NULL search every key in the list. | |
newmem | whether or not to allocate memory for the data. |
qentry_t *entry = qEntry(); entry->putstr(entry, "key1", "hello world 1", false); entry->putstr(entry, "key2", "hello world 2", false); entry->putstr(entry, "key3", "hello world 3", false); qentobj_t obj; memset((void*)&obj, 0, sizeof(obj)); // must be cleared before call while(entry->getnext(entry, &obj, NULL, false) == true) { printf("NAME=%s, DATA=%s", SIZE=%zu", obj.name, obj.data, obj.size); } // with newmem flag qentobj_t obj; memset((void*)&obj, 0, sizeof(obj)); // must be cleared before call while(entry->getnext(entry, &obj, NULL, true) == true) { printf("NAME=%s, DATA=%s", SIZE=%zu", obj.name, obj.data, obj.size); free(obj.name); free(obj.data); }
static int _size | ( | qentry_t * | entry | ) | [static] |
qentry_t->size(): Get total number of stored objects
entry | qentry_t pointer |
static int _remove | ( | qentry_t * | entry, | |
const char * | name | |||
) | [static] |
qentry_t->remove(): Remove matched objects as given name.
entry | qentry_t pointer | |
name | key name |
static bool _truncate | ( | qentry_t * | entry | ) | [static] |
qentry_t->truncate(): Truncate qentry_t
entry | qentry_t pointer |
static bool _reverse | ( | qentry_t * | entry | ) | [static] |
qentry_t->reverse(): Reverse-sort internal stored object.
entry | qentry_t pointer |
static bool _save | ( | qentry_t * | entry, | |
const char * | filepath | |||
) | [static] |
qentry_t->save(): Save qentry_t as plain text format
entry | qentry_t pointer | |
filepath | save file path |
static int _load | ( | qentry_t * | entry, | |
const char * | filepath | |||
) | [static] |
qentry_t->load(): Load and append entries from given filepath
entry | qentry_t pointer | |
filepath | save file path |
static bool _print | ( | qentry_t * | entry, | |
FILE * | out, | |||
bool | print_data | |||
) | [static] |
qentry_t->print(): Print out stored objects for debugging purpose.
entry | qentry_t pointer | |
out | output stream FILE descriptor such like stdout, stderr. | |
print_data | true for printing out object value, false for disable printing out object value. |
static bool _free | ( | qentry_t * | entry | ) | [static] |
qentry_t->free(): Free qentry_t
entry | qentry_t pointer |