libdebian-installer
Data Structures | Macros | Typedefs | Functions | Variables
Di_parser

Data Structures

struct  di_parser_info
 Parse info. More...
 
struct  di_parser_fieldinfo
 Info about a parser field. More...
 

Macros

#define DI_PARSER_FIELDINFO(name, read, write, integer)    { { name, sizeof (name) - 1 }, read, write, integer }
 

Typedefs

typedef void di_parser_fields_function_read(void **data, const di_parser_fieldinfo *fip, di_rstring *field_modifier, di_rstring *value, void *user_data)
 
typedef void di_parser_fields_function_write_callback(const di_rstring *field, const di_rstring *value, void *data)
 
typedef void di_parser_fields_function_write(void **data, const di_parser_fieldinfo *fip, di_parser_fields_function_write_callback callback, void *callback_data, void *user_data)
 
typedef void * di_parser_read_entry_new(void *user_data)
 
typedef int di_parser_read_entry_finish(void *data, void *user_data)
 
typedef void * di_parser_write_entry_next(void **state_data, void *user_data)
 

Functions

di_parser_infodi_parser_info_alloc (void)
 
void di_parser_info_free (di_parser_info *info)
 
void di_parser_info_add (di_parser_info *info, const di_parser_fieldinfo *fieldinfo[])
 

Variables

di_parser_fields_function_read di_parser_read_boolean
 
di_parser_fields_function_read di_parser_read_int
 
di_parser_fields_function_read di_parser_read_rstring
 
di_parser_fields_function_read di_parser_read_string
 
di_parser_fields_function_write di_parser_write_boolean
 
di_parser_fields_function_write di_parser_write_int
 
di_parser_fields_function_write di_parser_write_rstring
 
di_parser_fields_function_write di_parser_write_string
 

Detailed Description

Macro Definition Documentation

◆ DI_PARSER_FIELDINFO

#define DI_PARSER_FIELDINFO (   name,
  read,
  write,
  integer 
)     { { name, sizeof (name) - 1 }, read, write, integer }

generates a di_parser_fieldinfo

117 { { name, sizeof (name) - 1 }, read, write, integer }

Typedef Documentation

◆ di_parser_fields_function_read

typedef void di_parser_fields_function_read(void **data, const di_parser_fieldinfo *fip, di_rstring *field_modifier, di_rstring *value, void *user_data)

Read a single field

Parameters
datathe actual data
fipinfo of the actual field
valuethe actual value
value_sizesize of the actual value
user_datadata supplied to the parser

◆ di_parser_fields_function_write

typedef void di_parser_fields_function_write(void **data, const di_parser_fieldinfo *fip, di_parser_fields_function_write_callback callback, void *callback_data, void *user_data)

Write a single field

Parameters
datathe actual data
fipinfo of the actual field
outputstatic buffer for output
user_datadata supplied to the parser
Returns
written bytes

◆ di_parser_fields_function_write_callback

typedef void di_parser_fields_function_write_callback(const di_rstring *field, const di_rstring *value, void *data)

Write a single field - callback

Parameters
fieldthe field
valuethe value of the field
datathe callback_data

◆ di_parser_read_entry_finish

typedef int di_parser_read_entry_finish(void *data, void *user_data)
Parameters
datathe actual data
user_datadata supplied to di_parse

◆ di_parser_read_entry_new

typedef void * di_parser_read_entry_new(void *user_data)
Parameters
user_datadata supplied to di_parse
Returns
new data

◆ di_parser_write_entry_next

typedef void * di_parser_write_entry_next(void **state_data, void *user_data)
Parameters
datathe actual data
user_datadata supplied to di_parse

Function Documentation

◆ di_parser_info_add()

void di_parser_info_add ( di_parser_info info,
const di_parser_fieldinfo fieldinfo[] 
)
44{
46
47 for (fip = (di_parser_fieldinfo **) fieldinfo; *fip; fip++)
48 {
49 di_hash_table_insert (info->table, &(*fip)->key, *fip);
50 di_slist_append (&info->list, *fip);
51 }
52}
void di_hash_table_insert(di_hash_table *hash_table, void *key, void *value)
Definition hash.c:178
void di_slist_append(di_slist *slist, void *data) __attribute__((nonnull(1)))
Definition slist.c:68
Info about a parser field.
Definition parser.h:105
di_slist list
Definition parser.h:96
di_hash_table * table
Definition parser.h:95

◆ di_parser_info_alloc()

di_parser_info * di_parser_info_alloc ( void  )
27{
28 di_parser_info *info;
29
30 info = di_new0 (di_parser_info, 1);
31 info->table = di_hash_table_new (di_rstring_hash, di_rstring_equal);
32
33 return info;
34}
di_hash_table * di_hash_table_new(di_hash_func hash_func, di_equal_func key_equal_func)
Definition hash.c:108
#define di_new0(struct_type, n_structs)
Definition mem.h:79
Parse info.
Definition parser.h:94

◆ di_parser_info_free()

void di_parser_info_free ( di_parser_info info)
37{
39 di_slist_destroy (&info->list, NULL);
40 di_free (info);
41}
void di_hash_table_destroy(di_hash_table *hash_table)
Definition hash.c:134
void di_free(void *mem)
Definition mem.c:60
void di_slist_destroy(di_slist *slist, di_destroy_notify destroy_func) __attribute__((nonnull(1)))
Definition slist.c:35

Variable Documentation

◆ di_parser_read_boolean

di_parser_fields_function_read di_parser_read_boolean

Read function for a boolean (true == "Yes")

◆ di_parser_read_int

di_parser_fields_function_read di_parser_read_int

Read function for an int

◆ di_parser_read_rstring

di_parser_fields_function_read di_parser_read_rstring

Read function for a di_rstring

◆ di_parser_read_string

di_parser_fields_function_read di_parser_read_string

Read function for a string

◆ di_parser_write_boolean

di_parser_fields_function_write di_parser_write_boolean

Write function for a boolean ("Yes" == true)

◆ di_parser_write_int

di_parser_fields_function_write di_parser_write_int

Write function for an int

◆ di_parser_write_rstring

di_parser_fields_function_write di_parser_write_rstring

Write function for a di_string

◆ di_parser_write_string

di_parser_fields_function_write di_parser_write_string

Write function for a string