libdebian-installer
parser.h
1/*
2 * parser.h
3 *
4 * Copyright (C) 2003 Bastian Blank <waldi@debian.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef DEBIAN_INSTALLER__PARSER_H
21#define DEBIAN_INSTALLER__PARSER_H
22
23#include <debian-installer/hash.h>
24#include <debian-installer/slist.h>
25#include <debian-installer/string.h>
26
27#include <stdbool.h>
28#include <stdio.h>
29#include <stdlib.h>
30#include <string.h>
31
32typedef struct di_parser_info di_parser_info;
34
49typedef void di_parser_fields_function_read (void **data, const di_parser_fieldinfo *fip, di_rstring *field_modifier, di_rstring *value, void *user_data);
50
58typedef void di_parser_fields_function_write_callback (const di_rstring *field, const di_rstring *value, void *data);
59
70typedef 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);
71
76typedef void *di_parser_read_entry_new (void *user_data);
77
82typedef int di_parser_read_entry_finish (void *data, void *user_data);
83
88typedef void *di_parser_write_entry_next (void **state_data, void *user_data);
89
94{
97 bool modifier;
98 bool wildcard;
99};
100
105{
109 unsigned int integer;
111};
112
116#define DI_PARSER_FIELDINFO(name, read, write, integer) \
117 { { name, sizeof (name) - 1 }, read, write, integer }
118
136
154
155di_parser_info *di_parser_info_alloc (void);
156void di_parser_info_free (di_parser_info *info);
157
158void di_parser_info_add (di_parser_info *info, const di_parser_fieldinfo *fieldinfo[]);
159
161#endif
di_parser_fields_function_write di_parser_write_rstring
Definition: parser.h:149
di_parser_fields_function_write di_parser_write_int
Definition: parser.h:145
di_parser_fields_function_read di_parser_read_boolean
Definition: parser.h:123
int di_parser_read_entry_finish(void *data, void *user_data)
Definition: parser.h:82
void * di_parser_read_entry_new(void *user_data)
Definition: parser.h:76
di_parser_fields_function_write di_parser_write_string
Definition: parser.h:153
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)
Definition: parser.h:70
void di_parser_fields_function_read(void **data, const di_parser_fieldinfo *fip, di_rstring *field_modifier, di_rstring *value, void *user_data)
Definition: parser.h:49
void * di_parser_write_entry_next(void **state_data, void *user_data)
Definition: parser.h:88
di_parser_fields_function_read di_parser_read_int
Definition: parser.h:127
di_parser_fields_function_read di_parser_read_rstring
Definition: parser.h:131
di_parser_fields_function_read di_parser_read_string
Definition: parser.h:135
di_parser_fields_function_write di_parser_write_boolean
Definition: parser.h:141
void di_parser_fields_function_write_callback(const di_rstring *field, const di_rstring *value, void *data)
Definition: parser.h:58
Hash table.
Definition: hash.c:42
Info about a parser field.
Definition: parser.h:105
di_parser_fields_function_write * write
Definition: parser.h:108
unsigned int integer
Definition: parser.h:109
di_parser_fields_function_read * read
Definition: parser.h:107
di_rstring key
Definition: parser.h:106
Parse info.
Definition: parser.h:94
di_slist list
Definition: parser.h:96
bool modifier
Definition: parser.h:97
bool wildcard
Definition: parser.h:98
di_hash_table * table
Definition: parser.h:95
raw string
Definition: string.h:38
Single-linked list.
Definition: slist.h:37