X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fstorage%2Fstorage.c;h=8b00a716308ffc9eceae0c1d8f1b88b785b904de;hb=23eeb22223e34cfae61897bc1b15f45c41cc6df5;hp=272e6af264ce7ca41d34393a1f4b9ac6cc79e005;hpb=46c09ea2689913bb459c5f04439647aa138dc196;p=familia.git diff --git a/src/storage/storage.c b/src/storage/storage.c index 272e6af..8b00a71 100644 --- a/src/storage/storage.c +++ b/src/storage/storage.c @@ -1,3 +1,4 @@ +#include #include #include "storage.h" @@ -198,3 +199,63 @@ void familia_storage_remove_family_by_id(struct familia_storage * storage, unsig } } +void familia_storage_dump_all() +{ + int i; + struct familia_storage * storage = NULL; + struct familia_family * family = NULL; + struct familia_individual * individual = NULL; + + storage = familia_storage_get_current(); + + for (i = 0; i < storage->individuals_no; i++) { + individual = storage->individuals[i]; + printf("Individual (%d)\n", individual->id); + printf("\t First name: %s\n", individual->first_name); + printf("\t Last name: %s\n", individual->last_name); + if (individual->families_no > 0) { + int j; + struct familia_family * f = NULL; + struct familia_individual * i1 = NULL; + struct familia_individual * i2 = NULL; + + printf("\t Families:\n"); + for (j = 0; j < individual->families_no; j++) { + f = individual->families[j]; + i1 = familia_family_get_individual(f, Individual1); + i2 = familia_family_get_individual(f, Individual2); + + printf("\t > %s&%s\n", familia_individual_get_first_name(i1), familia_individual_get_first_name(i2)); + } + printf("\t Parents:\n"); + f = familia_individual_get_parents(individual); + i1 = familia_family_get_individual(f, Individual1); + i2 = familia_family_get_individual(f, Individual2); + + printf("\t > %s&%s\n", familia_individual_get_first_name(i1), familia_individual_get_first_name(i2)); + } + } + + + for (i = 0; i < storage->families_no; i++) { + int j; + struct familia_individual * i1 = NULL; + struct familia_individual * i2 = NULL; + + family = storage->families[i]; + + printf("Family (%d)\n", family->id); + i1 = familia_family_get_individual(family, Individual1); + i2 = familia_family_get_individual(family, Individual2); + printf("\t First parent: %s\n", familia_individual_get_first_name(i1)); + printf("\t Second parent: %s\n", familia_individual_get_first_name(i2)); + + printf("\t Children:\n"); + if (family->children_no > 0) { + for (j = 0; j < family->children_no; j++) { + i1 = family->children[j]; + printf("\t > %s\n", familia_individual_get_first_name(i1)); + } + } + } +}