tblite
Light-weight tight-binding framework
Loading...
Searching...
No Matches
table.h File Reference

Provides a representation of a generic table data structure. More...

#include "tblite/macros.h"
#include "tblite/error.h"

Go to the source code of this file.

Macros

#define tblite_table_set_value(error, table, key, value, ...)

Typedefs

typedef struct _tblite_table * tblite_table
typedef struct _tblite_array * tblite_array
 Handle for holding an array data structure.

Enumerations

enum  tblite_table_value_type {
  TBLITE_TABLE_VALUE_TYPE_NONE = 0 , TBLITE_TABLE_VALUE_TYPE_BOOL = 1 , TBLITE_TABLE_VALUE_TYPE_INT = 2 , TBLITE_TABLE_VALUE_TYPE_DOUBLE = 3 ,
  TBLITE_TABLE_VALUE_TYPE_CHAR = 4 , TBLITE_TABLE_VALUE_TYPE_ARRAY = 5 , TBLITE_TABLE_VALUE_TYPE_TABLE = 6
}
 Supported value kinds for table entries.

Functions

TBLITE_API_ENTRY tblite_table TBLITE_API_CALL tblite_new_table (tblite_table *table)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_delete_table (tblite_table *table)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_double (tblite_error error, tblite_table table, char key[], double *value, int n)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_int64_t (tblite_error error, tblite_table table, char key[], int64_t *value, int n)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_bool (tblite_error error, tblite_table table, char key[], bool *value, int n)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_char (tblite_error error, tblite_table table, char key[], char(*value)[], int n)
TBLITE_API_ENTRY tblite_table TBLITE_API_CALL tblite_table_add_table (tblite_error error, tblite_table table, char key[])
TBLITE_API_ENTRY tblite_array TBLITE_API_CALL tblite_new_array (void)
 Create new data array object.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_delete_array (tblite_array *array)
 Delete a data array object.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_push_back_double (tblite_error error, tblite_array array, double value)
 Append a double value to a data array.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_push_back_int64_t (tblite_error error, tblite_array array, int64_t value)
 Append an integer value to a data array.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_push_back_bool (tblite_error error, tblite_array array, bool value)
 Append a boolean value to a data array.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_push_back_char (tblite_error error, tblite_array array, char value[])
 Append a character string to a data array.
TBLITE_API_ENTRY int TBLITE_API_CALL tblite_array_size (tblite_error error, tblite_array array)
 Return the number of entries in a data array.
TBLITE_API_ENTRY int TBLITE_API_CALL tblite_array_get_type (tblite_error error, tblite_array array, int index)
 Return the value kind of an array entry.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_get_double (tblite_error error, tblite_array array, int index, double *value)
 Return an array entry as a double value.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_get_int64_t (tblite_error error, tblite_array array, int index, int64_t *value)
 Return an array entry as an integer value.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_get_bool (tblite_error error, tblite_array array, int index, bool *value)
 Return an array entry as a boolean value.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_array_get_char (tblite_error error, tblite_array array, int index, char value[], int n)
 Return an array entry as a character string.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_array (tblite_error error, tblite_table table, char key[], tblite_array array)
 Set the value of a table entry to a data array.
TBLITE_API_ENTRY int TBLITE_API_CALL tblite_table_get_type (tblite_error error, tblite_table table, char key[])
 Return the value kind of a table entry.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_get_bool (tblite_error error, tblite_table table, char key[], bool *value)
 Return a scalar bool value from a table entry.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_get_int64_t (tblite_error error, tblite_table table, char key[], int64_t *value)
 Return a scalar integer value from a table entry.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_get_double (tblite_error error, tblite_table table, char key[], double *value)
 Return a scalar floating point value from a table entry.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_get_char (tblite_error error, tblite_table table, char key[], char value[], int n)
 Return a scalar character value from a table entry.
TBLITE_API_ENTRY tblite_table TBLITE_API_CALL tblite_table_get_table (tblite_error error, tblite_table table, char key[])
 Return a child table from a table entry.
TBLITE_API_ENTRY tblite_array TBLITE_API_CALL tblite_table_get_array (tblite_error error, tblite_table table, char key[])
 Return an array value from a table entry.
TBLITE_API_ENTRY int TBLITE_API_CALL tblite_table_get_n_keys (tblite_error error, tblite_table table)
 Return the number of entries in a table.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_get_key (tblite_error error, tblite_table table, int index, char key[], int n)
 Return the key of a table entry at the given index.
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_dump_table (tblite_error error, tblite_table table, char filename[])

Detailed Description

Provides a representation of a generic table data structure.

Used to mirror the data available in the tblite_param object. It aims to provide a programmatic accessible representation of the parametrization records.

Macro Definition Documentation

◆ tblite_table_set_value

#define tblite_table_set_value ( error,
table,
key,
value,
... )
Value:
_Generic((value), \
)((error), (table), (key), (value), __VA_ARGS__)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_int64_t(tblite_error error, tblite_table table, char key[], int64_t *value, int n)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_bool(tblite_error error, tblite_table table, char key[], bool *value, int n)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_double(tblite_error error, tblite_table table, char key[], double *value, int n)
TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_char(tblite_error error, tblite_table table, char key[], char(*value)[], int n)

Generic setter based on the type of the value

Parameters
errorError handle
tableTable data structure
keyKey to set value at
valueValue to set at key

Typedef Documentation

◆ tblite_table

typedef struct _tblite_table* tblite_table

Handle for holding a table data structure

The table can either own its data or reference another table. Table references can be created from existing table data structures or by adding new table entries into an existing table, which returns a reference to the newly created table.

Function Documentation

◆ tblite_delete_table()

TBLITE_API_ENTRY void TBLITE_API_CALL tblite_delete_table ( tblite_table * table)

Delete a data table object

Parameters
tableTable object to be deleted

◆ tblite_dump_table()

TBLITE_API_ENTRY void TBLITE_API_CALL tblite_dump_table ( tblite_error error,
tblite_table table,
char filename[] )

Serialize a data table to a TOML file

Parameters
errorError handle
tableTable data structure
filenameOutput file name

◆ tblite_new_table()

Create new data table object

Parameters
tableTable object to reference in new table (optional)
Returns
: New table data structure

◆ tblite_table_add_table()

TBLITE_API_ENTRY tblite_table TBLITE_API_CALL tblite_table_add_table ( tblite_error error,
tblite_table table,
char key[] )

Create new subtable in existing data table

Parameters
errorError handle
tableTable data structure
keyKey to add new subtable at
Returns
New table data structure

◆ tblite_table_set_bool()

TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_bool ( tblite_error error,
tblite_table table,
char key[],
bool * value,
int n )

Set boolean value to data table

Parameters
errorError handle
tableTable data structure
keyKey to set value at
valueBoolean value or array to add to table
nNumber of entries to add, 0 for adding scalars

◆ tblite_table_set_char()

TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_char ( tblite_error error,
tblite_table table,
char key[],
char(*) value[],
int n )

Set character string to data table

Parameters
errorError handle
tableTable data structure
keyKey to set value at
valueCharacter value or array to add to table
nNumber of entries to add, 0 for adding scalars

◆ tblite_table_set_double()

TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_double ( tblite_error error,
tblite_table table,
char key[],
double * value,
int n )

Set floating point number to data table

Parameters
errorError handle
tableTable data structure
keyKey to set value at
valueDouble value or array to add to table
nNumber of entries to add, 0 for adding scalars

◆ tblite_table_set_int64_t()

TBLITE_API_ENTRY void TBLITE_API_CALL tblite_table_set_int64_t ( tblite_error error,
tblite_table table,
char key[],
int64_t * value,
int n )

Set integer number to data table (use int64_t rather than long)

Parameters
errorError handle
tableTable data structure
keyKey to set value at
valueInteger value or array to add to table
nNumber of entries to add, 0 for adding scalars