$darkmode
|
Elektra 0.11.0
|
Array methods. More...
#include <kdb.h>#include <kdbease.h>#include <kdbhelper.h>#include <kdbprivate.h>#include <kdbtypes.h>#include <ctype.h>#include <errno.h>#include <limits.h>#include <stdio.h>#include <stdlib.h>#include <string.h>
Functions | |
| int | elektraArrayValidateName (const Key *key) |
| validate array syntax More... | |
| int | elektraArrayValidateBaseNameString (const char *baseName) |
| validate array syntax More... | |
| char * | elektraArrayGetPrefix (Key *key) |
| Get the base name of the passed array. More... | |
| int | elektraArrayIncName (Key *key) |
| Increment the name of the key by one. More... | |
| int | elektraArrayDecName (Key *key) |
| Decrement the name of an array key by one. More... | |
| KeySet * | elektraArrayGet (const Key *arrayParent, KeySet *keys) |
| Return all the array keys below the given array parent. More... | |
| Key * | elektraArrayGetNextKey (KeySet *arrayKeys) |
| Return the next key in the given array. More... | |
Array methods.
| int elektraArrayDecName | ( | Key * | key | ) |
Decrement the name of an array key by one.
The alphabetical order will remain intact. For example, user:/abc/\#_10 will be changed to user:/abc/\#9.
| This | parameter determines the key name this function decrements. |
| -1 | on error (e.g. new array index too small, non-valid array) |
| 0 | on success |
| KeySet* elektraArrayGet | ( | const Key * | arrayParent, |
| KeySet * | keys | ||
| ) |
Return all the array keys below the given array parent.
The array parent itself is not returned. For example, if user:/config/# is an array, user:/config is the array parent. Only the direct array keys will be returned. This means that for example user:/config/#1/key will not be included, but only user:/config/#1.
A new keyset will be allocated for the resulting keys. This means that the caller must ksDel the resulting keyset.
| arrayParent | the parent of the array to be returned |
| keys | the keyset containing the array keys |
| NULL | on NULL pointers |
| Key* elektraArrayGetNextKey | ( | KeySet * | arrayKeys | ) |
Return the next key in the given array.
The function will automatically allocate memory for a new key and name it accordingly.
The caller has to keyDel the resulting key.
| arrayKeys | the array where the new key will belong to |
| NULL | if the passed array is empty |
| NULL | on NULL pointers or if an error occurs |
| char* elektraArrayGetPrefix | ( | Key * | key | ) |
Get the base name of the passed array.
The returned value must be freed (if not null)
e.g. user:/abc/#9/foo#1 wil return user:/abc
| key |
| int elektraArrayIncName | ( | Key * | key | ) |
Increment the name of the key by one.
Alphabetical order will remain
e.g. user:/abc/#9 will be changed to user:/abc/#_10
For the start: user:/abc/# will be changed to user:/abc/#0
| key | which base name will be incremented |
| -1 | on error (e.g. array too large, non-valid array) |
| 0 | on success |
| int elektraArrayValidateBaseNameString | ( | const char * | baseName | ) |
validate array syntax
| baseName | the supposed array element basename |
| -1 | if no array element/syntax error/no key |
| 0 | if start |
| offsetIndex | otherwise, where offsetIndex stores the offset to the first digit of the array index of baseName |
| int elektraArrayValidateName | ( | const Key * | key | ) |
validate array syntax
| key | an element of an array |
| -1 | if no array element/syntax error/no key |
| 0 | if start |
| 1 | if array element |