2019-03-08 18:18:31 +01:00
|
|
|
/* SPDX-License-Identifier: ISC */
|
2019-03-09 00:23:06 +01:00
|
|
|
#ifndef DEPGRAPH_H
|
|
|
|
#define DEPGRAPH_H
|
2019-02-03 12:37:49 +01:00
|
|
|
|
2019-02-03 11:43:15 +01:00
|
|
|
struct pkg_dep_node {
|
|
|
|
char *name;
|
|
|
|
|
|
|
|
/* num dependencies == number of outgoing edges */
|
|
|
|
size_t num_deps;
|
|
|
|
|
|
|
|
/* direct dependencies == array of outgoing edges */
|
|
|
|
struct pkg_dep_node **deps;
|
|
|
|
|
|
|
|
/* linked list pointer */
|
|
|
|
struct pkg_dep_node *next;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pkg_dep_list {
|
|
|
|
struct pkg_dep_node *head;
|
|
|
|
struct pkg_dep_node *tail;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct pkg_dep_node *append_pkg(struct pkg_dep_list *list, const char *name);
|
|
|
|
|
|
|
|
struct pkg_dep_node *find_pkg(struct pkg_dep_list *list, const char *name);
|
|
|
|
|
|
|
|
void pkg_list_cleanup(struct pkg_dep_list *list);
|
|
|
|
|
|
|
|
int collect_dependencies(int repofd, struct pkg_dep_list *list);
|
|
|
|
|
|
|
|
int sort_by_dependencies(struct pkg_dep_list *list);
|
|
|
|
|
2019-03-09 00:23:06 +01:00
|
|
|
#endif /* DEPGRAPH_H */
|