YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
param_enum.c File Reference
#include "param_enum.h"
#include "param_internal.h"
#include "utils_common.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <limits.h>
Include dependency graph for param_enum.c:

Go to the source code of this file.

Data Structures

struct  yac_param_enum
 

Functions

static enum yac_param_type yac_param_enum_get_type (const struct yac_param *param)
 
static int yac_param_enum_is_default (const struct yac_param *param)
 
static const char * yac_param_enum_get_name (const struct yac_param *param)
 
static int yac_param_enum_set_scalar_int (struct yac_param *param, int value)
 
static int yac_param_enum_set_scalar (struct yac_param *param, const char *value_str)
 
static int yac_param_enum_get_scalar_int (const struct yac_param *param, int *value)
 
static int yac_param_enum_get_scalar (const struct yac_param *param, char *buf, size_t buflen)
 
static int yac_param_enum_get_scalar_kind (const struct yac_param *param, enum yac_param_scalar_kind *scalar_kind)
 
static void yac_param_enum_delete (struct yac_param *param)
 
struct yac_param * yac_param_enum_new (const char *name, int *value_ptr, int default_value, struct yac_name_type_pair const *enum_table, size_t enum_table_size, int has_default, int is_defined)
 Create a new enum parameter for configuration.
 

Variables

static const struct yac_param_vtable yac_param_enum_vtable
 

Function Documentation

◆ yac_param_enum_delete()

static void yac_param_enum_delete ( struct yac_param * param)
static

Definition at line 121 of file param_enum.c.

◆ yac_param_enum_get_name()

static const char * yac_param_enum_get_name ( const struct yac_param * param)
static

Definition at line 39 of file param_enum.c.

◆ yac_param_enum_get_scalar()

static int yac_param_enum_get_scalar ( const struct yac_param * param,
char * buf,
size_t buflen )
static

Definition at line 92 of file param_enum.c.

Here is the call graph for this function:

◆ yac_param_enum_get_scalar_int()

static int yac_param_enum_get_scalar_int ( const struct yac_param * param,
int * value )
static

Definition at line 79 of file param_enum.c.

◆ yac_param_enum_get_scalar_kind()

static int yac_param_enum_get_scalar_kind ( const struct yac_param * param,
enum yac_param_scalar_kind * scalar_kind )
static

Definition at line 113 of file param_enum.c.

◆ yac_param_enum_get_type()

static enum yac_param_type yac_param_enum_get_type ( const struct yac_param * param)
static

Definition at line 25 of file param_enum.c.

◆ yac_param_enum_is_default()

static int yac_param_enum_is_default ( const struct yac_param * param)
static

Definition at line 31 of file param_enum.c.

◆ yac_param_enum_new()

struct yac_param * yac_param_enum_new ( const char * name,
int * value_ptr,
int default_value,
struct yac_name_type_pair const * enum_table,
size_t enum_table_size,
int has_default,
int is_defined )

Create a new enum parameter for configuration.

This parameter type allows selection from a fixed set of named integer values (enums).

Special handling:

  • String-based getters/setters operate using the enum name (e.g., "conservative").
  • Int-based getters/setters operate using the enum integer value.
  • Conversion between string and int is handled internally using the provided enum_table.
  • Invalid names or values will result in an error.
Parameters
nameName of the parameter (must not be NULL or empty)
value_ptrPointer to the integer value to be set/read
default_valueDefault enum value (must be present in enum_table, ignored if has_default is false)
enum_tableArray of name/type pairs defining the enum
enum_table_sizeNumber of entries in enum_table (must be > 0)
has_defaultIf true, parameter has a default value; if false, value is undefined until set
is_definedIf true, initial value is considered defined; if false, initial value is considered undefined and user must set it before getting
Returns
New parameter handle

Definition at line 148 of file param_enum.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_param_enum_set_scalar()

static int yac_param_enum_set_scalar ( struct yac_param * param,
const char * value_str )
static

Definition at line 60 of file param_enum.c.

Here is the call graph for this function:

◆ yac_param_enum_set_scalar_int()

static int yac_param_enum_set_scalar_int ( struct yac_param * param,
int value )
static

Definition at line 46 of file param_enum.c.

Here is the call graph for this function:

Variable Documentation

◆ yac_param_enum_vtable

const struct yac_param_vtable yac_param_enum_vtable
static
Initial value:
= {
.get_sub_count = NULL,
.get_sub_by_name = NULL,
.get_sub_by_index = NULL,
.append = NULL,
.get_scalar_kind = yac_param_enum_get_scalar_kind,
.set_scalar_int = yac_param_enum_set_scalar_int,
.set_scalar_dble = NULL,
.get_scalar_int = yac_param_enum_get_scalar_int,
.get_scalar_dble = NULL
}
static int yac_param_enum_get_scalar_kind(const struct yac_param *param, enum yac_param_scalar_kind *scalar_kind)
Definition param_enum.c:113
static int yac_param_enum_set_scalar_int(struct yac_param *param, int value)
Definition param_enum.c:46
static int yac_param_enum_is_default(const struct yac_param *param)
Definition param_enum.c:31
static int yac_param_enum_get_scalar(const struct yac_param *param, char *buf, size_t buflen)
Definition param_enum.c:92
static int yac_param_enum_get_scalar_int(const struct yac_param *param, int *value)
Definition param_enum.c:79
static int yac_param_enum_set_scalar(struct yac_param *param, const char *value_str)
Definition param_enum.c:60
static void yac_param_enum_delete(struct yac_param *param)
Definition param_enum.c:121
static const char * yac_param_enum_get_name(const struct yac_param *param)
Definition param_enum.c:39
static enum yac_param_type yac_param_enum_get_type(const struct yac_param *param)
Definition param_enum.c:25

Definition at line 130 of file param_enum.c.