Elektra  0.9.4
Functions
elektra_error.c File Reference

Elektra error codes. More...

#include "elektra/conversion.h"
#include "elektra/error.h"
#include "kdberrors.h"
#include "kdbhelper.h"
#include "kdbprivate.h"
#include <string.h>
Include dependency graph for elektra_error.c:

Functions

ElektraError * elektraErrorCreate (const char *code, const char *description, const char *module, const char *file, kdb_long_t line)
 Creates a new ElektraError using the provided values. More...
 
void elektraErrorAddWarning (ElektraError *error, ElektraError *warning)
 Adds a warning to an existing ElektraError struct. More...
 
ElektraError * elektraErrorFromKey (Key *key)
 Extracts the error and all warnings from the given key. More...
 
ElektraError * elektraErrorKeyNotFound (const char *keyname)
 Creates a "Key not found" error. More...
 
ElektraError * elektraErrorWrongType (const char *keyname, KDBType expectedType, KDBType actualType)
 Creates a "Wrong type" error. More...
 
ElektraError * elektraErrorNullError (const char *function)
 Creates a "Null error argument" error. More...
 
ElektraError * elektraErrorConversionToString (KDBType sourceType, const char *keyname)
 Creates a "Conversion to string failed" error. More...
 
ElektraError * elektraErrorConversionFromString (KDBType targetType, const char *keyname, const char *sourceValue)
 Creates a "Conversion from string failed" error. More...
 
ElektraError * elektraErrorEnsureFailed (const char *reason)
 Creates a "kdbEnsure failed" error. More...
 
ElektraError * elektraErrorMinimalValidationFailed (const char *application)
 Creates a "minimal validation failed" error. More...
 
ElektraError * elektraErrorPureWarning (void)
 Creates a dummy ElektraError struct to store warnings in. More...
 
const char * elektraErrorCode (const ElektraError *error)
 
const char * elektraErrorDescription (const ElektraError *error)
 
void elektraErrorReset (ElektraError **error)
 Frees the memory used by the error and sets the referenced error variable to NULL.
 

Detailed Description

Elektra error codes.

Function Documentation

◆ elektraErrorAddWarning()

void elektraErrorAddWarning ( ElektraError *  error,
ElektraError *  warning 
)

Adds a warning to an existing ElektraError struct.

If you want to report a warning without an error, create a dummy error with elektraErrorPureWarning() and then add a warning to it.

Parameters
errorThe error to which warning shall be added.
warningThe warning to add. Once added it is owned by error. DO NOT call elektraErrorReset() on it afterwards.

◆ elektraErrorConversionFromString()

ElektraError* elektraErrorConversionFromString ( KDBType  targetType,
const char *  keyname,
const char *  sourceValue 
)

Creates a "Conversion from string failed" error.

Parameters
targetTypeThe type into which sourceValue couldn't be converted.
keynameThe name of the key that couldn't be converted.
sourceValueThe value that couldn't be converted.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorConversionToString()

ElektraError* elektraErrorConversionToString ( KDBType  sourceType,
const char *  keyname 
)

Creates a "Conversion to string failed" error.

Parameters
sourceTypeThe type which failed to be converted to string.
keynameThe name of the key that couldn't be converted.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorCreate()

ElektraError* elektraErrorCreate ( const char *  code,
const char *  description,
const char *  module,
const char *  file,
kdb_long_t  line 
)

Creates a new ElektraError using the provided values.

The returned value will be allocated with elektraCalloc().

Parameters
codeThe error code of the error. Must be compile-time constant.
descriptionThe description of the error. Will be copied and stored in the struct.
moduleThe module that raised the error. Must be compile-time constant.
fileThe file that raised the error. Must be compile-time constant.
lineThe line in which the error was raised.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorEnsureFailed()

ElektraError* elektraErrorEnsureFailed ( const char *  reason)

Creates a "kdbEnsure failed" error.

This intended for the case when kdbEnsure() returns 1.

Parameters
reasonThe error/reason metadata returned by kdbEnsure().
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorFromKey()

ElektraError* elektraErrorFromKey ( Key *  key)

Extracts the error and all warnings from the given key.

If no error exists, a pure warning error will be used.

See also
elektraErrorPureWarning
Parameters
keyThe to extract error and warnings from.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorKeyNotFound()

ElektraError* elektraErrorKeyNotFound ( const char *  keyname)

Creates a "Key not found" error.

Parameters
keynameThe name of the key that wasn't found.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorMinimalValidationFailed()

ElektraError* elektraErrorMinimalValidationFailed ( const char *  application)

Creates a "minimal validation failed" error.

Parameters
applicationparent key as passed to elektraOpen()
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorNullError()

ElektraError* elektraErrorNullError ( const char *  function)

Creates a "Null error argument" error.

Parameters
functionThe name of the function that was called with a null pointer error argument.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).

◆ elektraErrorWrongType()

ElektraError* elektraErrorWrongType ( const char *  keyname,
KDBType  expectedType,
KDBType  actualType 
)

Creates a "Wrong type" error.

Parameters
keynameThe name of the key that had the wrong type.
expectedTypeThe type that was expected.
actualTypeThe type that was actually found.
Returns
A newly allocated ElektraError (free with elektraErrorReset()).