$darkmode
Elektra 0.11.0
Functions
functional.c File Reference

Functional helper. More...

#include <kdb.h>
#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for functional.c:

Functions

int elektraKsFilter (KeySet *result, KeySet *input, int(*filter)(const Key *k, void *argument), void *argument)
 return only those keys from the given keyset that pass the supplied filter function with the supplied argument More...
 
int elektraKsToMemArray (KeySet *ks, Key **buffer)
 Builds an array of pointers to the keys in the supplied keyset. More...
 

Detailed Description

Functional helper.

Function Documentation

◆ elektraKsFilter()

int elektraKsFilter ( KeySet *  result,
KeySet *  input,
int(*)(const Key *k, void *argument)  filter,
void *  argument 
)

return only those keys from the given keyset that pass the supplied filter function with the supplied argument

Parameters
resultthe keyset that should contain the filtered keys
inputthe keyset whose keys should be filtered
filtera function pointer to a function that will be used to filter the keyset. A key will be taken if the function returns a value greater than 0.
argumentan argument that will be passed to the filter function each time it is called
Returns
the number of filtered keys if the filter function always returned a positive value, -1 otherwise
Return values
NULLon NULL pointer

◆ elektraKsToMemArray()

int elektraKsToMemArray ( KeySet *  ks,
Key **  buffer 
)

Builds an array of pointers to the keys in the supplied keyset.

The keys are not copied, calling keyDel may remove them from the keyset.

The size of the buffer can be easily allocated via ksGetSize. Example:

KeySet *ks = somekeyset;
Key **keyArray = calloc (ksGetSize(ks), sizeof (Key *));
elektraKsToMemArray (ks, keyArray);
... work with the array ...
elektraFree (keyArray);
int elektraKsToMemArray(KeySet *ks, Key **buffer)
Builds an array of pointers to the keys in the supplied keyset.
Definition: functional.c:84
ssize_t ksGetSize(const KeySet *ks)
Return the number of Keys that ks contains.
Definition: keyset.c:791
Parameters
ksthe keyset object to work with
bufferthe buffer to put the result into
Returns
the number of elements in the array if successful
a negative number on null pointers or if an error occurred