1 /* External header for the Gedcom parser library.
2 Copyright (C) 2002 The Genes Development Team
3 This file is part of the Gedcom parser library.
4 Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2002.
6 The Gedcom parser library is free software; you can redistribute it
7 and/or modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The Gedcom parser library is distributed in the hope that it will be
12 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the Gedcom parser library; if not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
24 #ifndef __GEDCOM_GOM_H
25 #define __GEDCOM_GOM_H
35 struct xref_value *xref_value;
36 struct user_data *next;
37 struct user_data *previous;
48 struct user_data *extra;
53 struct user_data *extra;
55 struct text *previous;
58 struct source_citation {
60 struct xref_value *reference;
64 struct date_value* date;
67 struct multimedia_link *mm_link;
68 struct note_sub *note;
69 struct user_data *extra;
70 struct source_citation *next;
71 struct source_citation *previous;
76 struct xref_value *reference;
77 struct source_citation *citation;
78 struct user_data *extra;
79 struct note_sub *next;
80 struct note_sub *previous;
85 char *place_hierarchy;
86 struct user_data *extra;
87 struct source_citation *citation;
88 struct note_sub *note;
91 struct multimedia_link {
92 struct xref_value *reference;
96 struct note_sub *note;
97 struct user_data *extra;
98 struct multimedia_link *next;
99 struct multimedia_link *previous;
104 struct date_value *date;
106 char *place_living_ordinance;
107 struct xref_value *family;
108 struct source_citation *citation;
109 struct note_sub *note;
110 struct user_data *extra;
111 struct lds_event *next;
112 struct lds_event *previous;
115 struct user_ref_number {
118 struct user_data *extra;
119 struct user_ref_number *next;
120 struct user_ref_number *previous;
124 struct date_value *date;
126 struct note_sub *note;
127 struct user_data *extra;
135 struct date_value *date;
137 struct address *address;
139 struct age_value *age;
142 struct source_citation *citation;
143 struct multimedia_link *mm_link;
144 struct note_sub *note;
145 struct age_value *husband_age;
146 struct age_value *wife_age;
147 struct xref_value *family;
148 char *adoption_parent;
149 struct user_data *extra;
151 struct event *previous;
155 struct xref_value *xref;
156 struct user_data *extra;
157 struct xref_list *next;
158 struct xref_list *previous;
161 struct personal_name {
166 char *surname_prefix;
169 struct source_citation *citation;
170 struct note_sub *note;
171 struct user_data *extra;
172 struct personal_name *next;
173 struct personal_name *previous;
178 struct user_data *extra;
179 struct pedigree *next;
180 struct pedigree *previous;
184 struct xref_value *family;
185 struct pedigree *pedigree;
186 struct note_sub *note;
187 struct user_data *extra;
188 struct family_link *next;
189 struct family_link *previous;
193 struct xref_value *to;
196 struct source_citation *citation;
197 struct note_sub *note;
198 struct user_data *extra;
199 struct association *next;
200 struct association *previous;
203 struct source_event {
204 char *recorded_events;
205 struct date_value *date_period;
207 struct user_data *extra;
208 struct source_event *next;
209 struct source_event *previous;
212 struct source_description {
215 struct user_data *extra;
216 struct source_description *next;
217 struct source_description *previous;
220 /* Main structures */
223 struct header_source {
227 struct header_corporation {
229 struct address *address;
234 struct date_value* date;
239 struct date_value* date;
241 struct xref_value* submitter;
242 struct xref_value* submission;
245 struct header_gedcom {
249 struct header_charset {
254 char* place_hierarchy;
256 struct user_data *extra;
261 struct xref_value* submitter;
264 char* nr_of_ancestor_gens;
265 char* nr_of_descendant_gens;
266 char* ordinance_process_flag;
268 struct user_data *extra;
274 struct xref_value* husband;
275 struct xref_value* wife;
276 struct xref_list* children;
277 char* nr_of_children;
278 struct xref_list* submitters;
279 struct lds_event* lds_spouse_sealing;
280 struct source_citation *citation;
281 struct multimedia_link *mm_link;
282 struct note_sub *note;
283 struct user_ref_number *ref;
285 struct change_date* change_date;
286 struct user_data *extra;
288 struct family* previous;
293 char* restriction_notice;
294 struct personal_name* name;
297 struct event* attribute;
298 struct lds_event* lds_individual_ordinance;
299 struct family_link* child_to_family;
300 struct family_link* spouse_to_family;
301 struct xref_list* submitters;
302 struct association* association;
303 struct xref_list* alias;
304 struct xref_list* ancestor_interest;
305 struct xref_list* descendant_interest;
306 struct source_citation *citation;
307 struct multimedia_link *mm_link;
308 struct note_sub *note;
309 char* record_file_nr;
310 char* ancestral_file_nr;
311 struct user_ref_number *ref;
313 struct change_date* change_date;
314 struct user_data *extra;
315 struct individual* next;
316 struct individual* previous;
323 struct note_sub *note;
325 struct xref_value* continued;
326 struct user_ref_number *ref;
328 struct change_date* change_date;
329 struct user_data *extra;
330 struct multimedia* next;
331 struct multimedia* previous;
337 struct source_citation *citation;
338 struct user_ref_number *ref;
340 struct change_date* change_date;
341 struct user_data *extra;
343 struct note* previous;
349 struct address *address;
351 struct note_sub *note;
352 struct user_ref_number *ref;
354 struct change_date* change_date;
355 struct user_data *extra;
356 struct repository* next;
357 struct repository* previous;
363 struct source_event *event;
365 struct note_sub *note;
373 struct xref_value *link;
374 struct note_sub *note;
375 struct source_description *description;
377 struct multimedia_link *mm_link;
378 struct note_sub *note;
379 struct user_ref_number *ref;
381 struct change_date* change_date;
382 struct user_data *extra;
384 struct source* previous;
390 struct address* address;
392 struct multimedia_link *mm_link;
394 char* record_file_nr;
396 struct change_date* change_date;
397 struct user_data *extra;
398 struct submitter* next;
399 struct submitter* previous;
406 struct xref_value* xref_value;
407 struct user_data* extra;
408 struct user_rec* next;
409 struct user_rec* previous;
412 int gom_parse_file(char* file_name);
414 struct header* gom_get_header();
415 struct submission* gom_get_submission();
417 struct family* gom_get_first_family();
418 struct family* gom_get_family_by_xref(char *xref);
420 struct individual* gom_get_first_individual();
421 struct individual* gom_get_individual_by_xref(char *xref);
423 struct multimedia* gom_get_first_multimedia();
424 struct multimedia* gom_get_multimedia_by_xref(char *xref);
426 struct note* gom_get_first_note();
427 struct note* gom_get_note_by_xref(char *xref);
429 struct repository* gom_get_first_repository();
430 struct repository* gom_get_repository_by_xref(char *xref);
432 struct source* gom_get_first_source();
433 struct source* gom_get_source_by_xref(char *xref);
435 struct submitter* gom_get_first_submitter();
436 struct submitter* gom_get_submitter_by_xref(char *xref);
438 struct user_rec* gom_get_first_user_rec();
439 struct user_rec* gom_get_user_rec_by_xref(char *xref);
443 #endif /* __GEDCOM_GOM_H */