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
37 struct xref_value *xref_value;
38 struct user_data *next;
39 struct user_data *previous;
50 struct user_data *extra;
55 struct user_data *extra;
57 struct text *previous;
60 struct source_citation {
62 struct xref_value *reference;
66 struct date_value *date;
69 struct multimedia_link *mm_link;
70 struct note_sub *note;
71 struct user_data *extra;
72 struct source_citation *next;
73 struct source_citation *previous;
78 struct xref_value *reference;
79 struct source_citation *citation;
80 struct user_data *extra;
81 struct note_sub *next;
82 struct note_sub *previous;
87 char *place_hierarchy;
88 struct user_data *extra;
89 struct source_citation *citation;
90 struct note_sub *note;
93 struct multimedia_link {
94 struct xref_value *reference;
98 struct note_sub *note;
99 struct user_data *extra;
100 struct multimedia_link *next;
101 struct multimedia_link *previous;
106 struct date_value *date;
108 char *place_living_ordinance;
109 struct xref_value *family;
110 struct source_citation *citation;
111 struct note_sub *note;
112 struct user_data *extra;
113 struct lds_event *next;
114 struct lds_event *previous;
117 struct user_ref_number {
120 struct user_data *extra;
121 struct user_ref_number *next;
122 struct user_ref_number *previous;
126 struct date_value *date;
128 struct note_sub *note;
129 struct user_data *extra;
137 struct date_value *date;
139 struct address *address;
141 struct age_value *age;
144 struct source_citation *citation;
145 struct multimedia_link *mm_link;
146 struct note_sub *note;
147 struct age_value *husband_age;
148 struct age_value *wife_age;
149 struct xref_value *family;
150 char *adoption_parent;
151 struct user_data *extra;
153 struct event *previous;
157 struct xref_value *xref;
158 struct user_data *extra;
159 struct xref_list *next;
160 struct xref_list *previous;
163 struct personal_name {
168 char *surname_prefix;
171 struct source_citation *citation;
172 struct note_sub *note;
173 struct user_data *extra;
174 struct personal_name *next;
175 struct personal_name *previous;
180 struct user_data *extra;
181 struct pedigree *next;
182 struct pedigree *previous;
186 struct xref_value *family;
187 struct pedigree *pedigree;
188 struct note_sub *note;
189 struct user_data *extra;
190 struct family_link *next;
191 struct family_link *previous;
195 struct xref_value *to;
198 struct source_citation *citation;
199 struct note_sub *note;
200 struct user_data *extra;
201 struct association *next;
202 struct association *previous;
205 struct source_event {
206 char *recorded_events;
207 struct date_value *date_period;
209 struct user_data *extra;
210 struct source_event *next;
211 struct source_event *previous;
214 struct source_description {
217 struct user_data *extra;
218 struct source_description *next;
219 struct source_description *previous;
222 /* Main structures */
225 struct header_source {
229 struct header_corporation {
231 struct address *address;
236 struct date_value *date;
241 struct date_value *date;
243 struct xref_value *submitter;
244 struct xref_value *submission;
247 struct header_gedcom {
251 struct header_charset {
256 char *place_hierarchy;
258 struct user_data *extra;
263 struct xref_value *submitter;
266 char *nr_of_ancestor_gens;
267 char *nr_of_descendant_gens;
268 char *ordinance_process_flag;
270 struct user_data *extra;
276 struct xref_value *husband;
277 struct xref_value *wife;
278 struct xref_list *children;
279 char *nr_of_children;
280 struct xref_list *submitters;
281 struct lds_event *lds_spouse_sealing;
282 struct source_citation *citation;
283 struct multimedia_link *mm_link;
284 struct note_sub *note;
285 struct user_ref_number *ref;
287 struct change_date *change_date;
288 struct user_data *extra;
290 struct family *previous;
295 char *restriction_notice;
296 struct personal_name *name;
299 struct event *attribute;
300 struct lds_event *lds_individual_ordinance;
301 struct family_link *child_to_family;
302 struct family_link *spouse_to_family;
303 struct xref_list *submitters;
304 struct association *association;
305 struct xref_list *alias;
306 struct xref_list *ancestor_interest;
307 struct xref_list *descendant_interest;
308 struct source_citation *citation;
309 struct multimedia_link *mm_link;
310 struct note_sub *note;
311 char *record_file_nr;
312 char *ancestral_file_nr;
313 struct user_ref_number *ref;
315 struct change_date *change_date;
316 struct user_data *extra;
317 struct individual *next;
318 struct individual *previous;
325 struct note_sub *note;
327 struct xref_value *continued;
328 struct user_ref_number *ref;
330 struct change_date *change_date;
331 struct user_data *extra;
332 struct multimedia *next;
333 struct multimedia *previous;
339 struct source_citation *citation;
340 struct user_ref_number *ref;
342 struct change_date *change_date;
343 struct user_data *extra;
345 struct note *previous;
351 struct address *address;
353 struct note_sub *note;
354 struct user_ref_number *ref;
356 struct change_date *change_date;
357 struct user_data *extra;
358 struct repository *next;
359 struct repository *previous;
365 struct source_event *event;
367 struct note_sub *note;
375 struct xref_value *link;
376 struct note_sub *note;
377 struct source_description *description;
379 struct multimedia_link *mm_link;
380 struct note_sub *note;
381 struct user_ref_number *ref;
383 struct change_date *change_date;
384 struct user_data *extra;
386 struct source *previous;
392 struct address *address;
394 struct multimedia_link *mm_link;
396 char *record_file_nr;
398 struct change_date *change_date;
399 struct user_data *extra;
400 struct submitter *next;
401 struct submitter *previous;
408 struct xref_value *xref_value;
409 struct user_data *extra;
410 struct user_rec *next;
411 struct user_rec *previous;
416 int gom_parse_file(const char *file_name);
418 struct header* gom_get_header();
419 struct submission* gom_get_submission();
421 struct family* gom_get_first_family();
422 struct family* gom_get_family_by_xref(const char *xref);
424 struct individual* gom_get_first_individual();
425 struct individual* gom_get_individual_by_xref(const char *xref);
427 struct multimedia* gom_get_first_multimedia();
428 struct multimedia* gom_get_multimedia_by_xref(const char *xref);
430 struct note* gom_get_first_note();
431 struct note* gom_get_note_by_xref(const char *xref);
433 struct repository* gom_get_first_repository();
434 struct repository* gom_get_repository_by_xref(const char *xref);
436 struct source* gom_get_first_source();
437 struct source* gom_get_source_by_xref(const char *xref);
439 struct submitter* gom_get_first_submitter();
440 struct submitter* gom_get_submitter_by_xref(const char *xref);
442 struct user_rec* gom_get_first_user_rec();
443 struct user_rec* gom_get_user_rec_by_xref(const char *xref);
445 char* gom_get_string(char* data);
446 char* gom_set_string(char** data, const char* utf8_value);
448 char* gom_get_string_locale(char* data, int* conversion_failures);
449 char* gom_set_string_locale(char** data, const char* locale_value);
450 void gom_set_unknown(const char* unknown);
454 #endif /* __GEDCOM_GOM_H */