libdebian-installer
packages.h
1/*
2 * packages.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__PACKAGES_H
21#define DEBIAN_INSTALLER__PACKAGES_H
22
23#include <debian-installer/hash.h>
24#include <debian-installer/parser.h>
25#include <debian-installer/slist.h>
26
27#include <stddef.h>
28#include <string.h>
29
30typedef struct di_packages di_packages;
32
47
58
59#include <debian-installer/package.h>
60
62void di_packages_free (di_packages *packages);
63
66
67void di_packages_append_package (di_packages *packages, di_package *package, di_packages_allocator *allocator);
68di_package *di_packages_get_package (di_packages *packages, const char *name, size_t n);
69di_package *di_packages_get_package_new (di_packages *packages, di_packages_allocator *allocator, char *name, size_t n);
70
71di_slist *di_packages_resolve_dependencies (di_packages *packages, di_slist *list, di_packages_allocator *allocator);
72di_slist *di_packages_resolve_dependencies_array (di_packages *packages, di_package **array, di_packages_allocator *allocator);
73void di_packages_resolve_dependencies_mark (di_packages *packages);
74
78 di_packages_parser_read_name;
79
88
92
98di_packages *di_packages_special_read_file (const char *file, di_packages_allocator *allocator, di_parser_info *(info) (void));
99
108int di_packages_special_write_file (di_packages *packages, const char *file, di_parser_info *(info) (void));
109
116static inline di_packages *di_packages_read_file (const char *file, di_packages_allocator *allocator)
117{
119}
120
127static inline di_packages *di_packages_minimal_read_file (const char *file, di_packages_allocator *allocator)
128{
130}
131
138static inline di_packages *di_packages_status_read_file (const char *file, di_packages_allocator *allocator)
139{
141}
142
151static inline int di_packages_write_file (di_packages *packages, const char *file)
152{
154}
155
164static inline int di_packages_status_write_file (di_packages *packages, const char *file)
165{
167}
168
170#endif
di_packages * di_packages_special_read_file(const char *file, di_packages_allocator *allocator, di_parser_info *(info)(void))
const di_parser_fieldinfo * di_packages_parser_fieldinfo[]
Definition packages_parser.c:48
const di_parser_fieldinfo * di_packages_minimal_parser_fieldinfo[]
Definition packages_parser.c:101
di_parser_info * di_packages_minimal_parser_info(void)
Definition packages_parser.c:137
static int di_packages_write_file(di_packages *packages, const char *file)
Definition packages.h:151
static di_packages * di_packages_status_read_file(const char *file, di_packages_allocator *allocator)
Definition packages.h:138
int di_packages_special_write_file(di_packages *packages, const char *file, di_parser_info *(info)(void))
static di_packages * di_packages_read_file(const char *file, di_packages_allocator *allocator)
Definition packages.h:116
static di_packages * di_packages_minimal_read_file(const char *file, di_packages_allocator *allocator)
Definition packages.h:127
const di_parser_fieldinfo * di_packages_status_parser_fieldinfo[]
Definition packages_parser.c:76
di_parser_info * di_packages_parser_info(void)
Definition packages_parser.c:123
di_parser_info * di_packages_status_parser_info(void)
Definition packages_parser.c:151
static int di_packages_status_write_file(di_packages *packages, const char *file)
Definition packages.h:164
di_package * di_packages_get_package(di_packages *packages, const char *name, size_t n)
Definition packages.c:121
di_packages_allocator * di_packages_allocator_alloc(void)
Definition packages.c:48
void di_packages_free(di_packages *packages)
Definition packages.c:76
di_package * di_packages_get_package_new(di_packages *packages, di_packages_allocator *allocator, char *name, size_t n)
Definition packages.c:148
void di_packages_allocator_free(di_packages_allocator *packages)
Definition packages.c:87
void di_packages_append_package(di_packages *packages, di_package *package, di_packages_allocator *allocator)
Definition packages.c:100
di_packages * di_packages_alloc(void)
Definition packages.c:35
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
Hash table.
Definition hash.c:42
a mem chunk
Definition mem_chunk.c:47
Package.
Definition package.h:96
Packages file - Allocator.
Definition packages.h:53
di_mem_chunk * package_mem_chunk
Definition packages.h:54
di_mem_chunk * slist_node_mem_chunk
Definition packages.h:56
di_mem_chunk * package_dependency_mem_chunk
Definition packages.h:55
Packages file.
Definition packages.h:42
di_slist list
Definition packages.h:44
unsigned int resolver
Definition packages.h:45
di_hash_table * table
Definition packages.h:43
Info about a parser field.
Definition parser.h:105
Parse info.
Definition parser.h:94
Single-linked list.
Definition slist.h:37