Elektra  0.8.18
Functions
array.c File Reference

Array methods. More...

#include <kdb.h>
#include <kdbease.h>
#include <kdbhelper.h>
#include <kdbtypes.h>
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for array.c:

Functions

int elektraArrayIncName (Key *key)
 Increment the name of the key by one. More...
 
KeySet * elektraArrayGet (const Key *arrayParent, KeySet *keys)
 Return all the array keys below the given arrayparent The arrayparent itself is not returned. More...
 
Key * elektraArrayGetNextKey (KeySet *arrayKeys)
 Return the next key in the given array. More...
 

Detailed Description

Array methods.

Function Documentation

KeySet* elektraArrayGet ( const Key *  arrayParent,
KeySet *  keys 
)

Return all the array keys below the given arrayparent The arrayparent 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.

Parameters
arrayParentthe parent of the array to be returned
keysthe keyset containing the array keys.
Returns
a keyset containing the arraykeys (if any)
Return values
NULLon 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.

Precondition
The supplied keyset must contain only valid array keys.

The caller has to keyDel the resulting key.

Parameters
arrayKeysthe array where the new key will belong to
Returns
the new array key on success
Return values
NULLif the passed array is empty
NULLon NULL pointers or if an error occurs
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

Parameters
keywhich base name will be incremented
Return values
-1on error (e.g. too large array, not validated array)
0on success