Modules | |
| group | Parser |
Data Structures | |
| struct | di_packages |
| Packages file. More... | |
| struct | di_packages_allocator |
| Packages file - Allocator. More... | |
| struct | di_packages_resolve_dependencies_check |
Typedefs | |
| typedef bool | di_packages_resolve_dependencies_check_package (di_packages_resolve_dependencies_check *r, di_package *package, di_package_dependency *d) |
| typedef di_package * | di_packages_resolve_dependencies_check_provide (di_package *package, di_package *best, di_package_dependency *d) |
Functions | |
| di_packages * | di_packages_alloc (void) |
| void | di_packages_free (di_packages *packages) |
| di_packages_allocator * | di_packages_allocator_alloc (void) |
| void | di_packages_allocator_free (di_packages_allocator *packages) |
| void | di_packages_append_package (di_packages *packages, di_package *package, di_packages_allocator *allocator) |
| di_package * | di_packages_get_package (di_packages *packages, const char *name, size_t n) |
| di_package * | di_packages_get_package_new (di_packages *packages, di_packages_allocator *allocator, char *name, size_t n) |
| di_slist * | di_packages_resolve_dependencies (di_packages *packages, di_slist *list, di_packages_allocator *allocator) |
| di_slist * | di_packages_resolve_dependencies_array (di_packages *packages, di_package **array, di_packages_allocator *allocator) |
| void | di_packages_resolve_dependencies_mark (di_packages *packages) |
| di_packages_allocator * | internal_di_packages_allocator_alloc (void) |
| di_slist * | di_packages_resolve_dependencies_special (di_packages *packages, di_slist *list, di_packages_resolve_dependencies_check *s) |
| di_slist * | di_packages_resolve_dependencies_array_special (di_packages *packages, di_package **array, di_packages_resolve_dependencies_check *s) |
| void | di_packages_resolve_dependencies_mark_special (di_packages *packages, di_packages_resolve_dependencies_check *s) |
| void | di_packages_resolve_dependencies_marker (di_packages *packages) |
| bool | di_packages_resolve_dependencies_recurse (di_packages_resolve_dependencies_check *r, di_package *package, di_package *dependend_package) |
Variables | |
| di_packages_resolve_dependencies_check_package | di_packages_resolve_dependencies_check_real |
| di_packages_resolve_dependencies_check_package | di_packages_resolve_dependencies_check_real_dependency |
| di_packages_resolve_dependencies_check_package | di_packages_resolve_dependencies_check_non_existant |
| di_packages_resolve_dependencies_check_package | di_packages_resolve_dependencies_check_non_existant_quiet |
| di_packages_resolve_dependencies_check_package | di_packages_resolve_dependencies_check_non_existant_permissive |
| di_packages_resolve_dependencies_check_provide | di_packages_resolve_dependencies_check_virtual |
|
|
Allocate di_packages
00039 {
00040 di_packages *ret;
00041
00042 ret = di_new0 (di_packages, 1);
00043 ret->table = di_hash_table_new_full (di_rstring_hash, di_rstring_equal, NULL, internal_di_package_destroy_func);
00044
00045 return ret;
00046 }
|
|
|
Allocate di_packages_allocator
00052 {
00053 di_packages_allocator *ret;
00054
00055 ret = internal_di_packages_allocator_alloc ();
00056 ret->package_mem_chunk = di_mem_chunk_new (sizeof (di_package), 16384);
00057
00058 return ret;
00059 }
|
|
|
00091 {
00092 di_mem_chunk_destroy (allocator->package_mem_chunk);
00093 di_mem_chunk_destroy (allocator->package_dependency_mem_chunk);
00094 di_mem_chunk_destroy (allocator->slist_node_mem_chunk);
00095 di_free (allocator);
00096 }
|
|
||||||||||||||||
|
append a package.
00104 {
00105 di_package *tmp;
00106
00107 tmp = di_packages_get_package (packages, package->package, 0);
00108
00109 if (!tmp)
00110 di_slist_append_chunk (&packages->list, package, allocator->slist_node_mem_chunk);
00111
00112 di_hash_table_insert (packages->table, &package->key, package);
00113 }
|
|
|
Free di_packages
00080 {
00081 if (!packages)
00082 return;
00083 di_hash_table_destroy (packages->table);
00084 di_free (packages);
00085 }
|
|
||||||||||||||||
|
get a named package.
00125 {
00126 di_rstring key;
00127 size_t size;
00128
00129 if (n)
00130 size = n;
00131 else
00132 size = strlen (name);
00133
00134 /* i know that is bad, but i know it is not written by the lookup */
00135 key.string = (char *) name;
00136 key.size = size;
00137
00138 return di_hash_table_lookup (packages->table, &key);
00139 }
|
|
||||||||||||||||||||
|
get a named package. creates a new one if non-existant.
00152 {
00153 di_package *ret = di_packages_get_package (packages, name, n);
00154
00155 if (!ret)
00156 {
00157 ret = di_package_alloc (allocator);
00158 ret->key.string = di_stradup (name, n);
00159 ret->key.size = n;
00160
00161 di_hash_table_insert (packages->table, &ret->key, ret);
00162 }
00163
00164 return ret;
00165 }
|
|
|
For internal use only. Partially allocate di_packages_allocator
00066 {
00067 di_packages_allocator *ret;
00068
00069 ret = di_new0 (di_packages_allocator, 1);
00070 ret->package_dependency_mem_chunk = di_mem_chunk_new (sizeof (di_package_dependency), 4096);
00071 ret->slist_node_mem_chunk = di_mem_chunk_new (sizeof (di_slist_node), 4096);
00072
00073 return ret;
00074 }
|
1.3.6-20040222