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
39 struct xref_value *xref_value;
40 struct user_data *next;
41 struct user_data *previous;
52 struct user_data *extra;
57 struct user_data *extra;
59 struct text *previous;
62 struct source_citation {
64 struct xref_value *reference;
68 struct date_value *date;
71 struct multimedia_link *mm_link;
72 struct note_sub *note;
73 struct user_data *extra;
74 struct source_citation *next;
75 struct source_citation *previous;
80 struct xref_value *reference;
81 struct source_citation *citation;
82 struct user_data *extra;
83 struct note_sub *next;
84 struct note_sub *previous;
89 char *place_hierarchy;
90 struct user_data *extra;
91 struct source_citation *citation;
92 struct note_sub *note;
95 struct multimedia_link {
96 struct xref_value *reference;
100 struct note_sub *note;
101 struct user_data *extra;
102 struct multimedia_link *next;
103 struct multimedia_link *previous;
108 struct date_value *date;
110 char *place_living_ordinance;
111 struct xref_value *family;
112 struct source_citation *citation;
113 struct note_sub *note;
114 struct user_data *extra;
115 struct lds_event *next;
116 struct lds_event *previous;
119 struct user_ref_number {
122 struct user_data *extra;
123 struct user_ref_number *next;
124 struct user_ref_number *previous;
128 struct date_value *date;
130 struct note_sub *note;
131 struct user_data *extra;
139 struct date_value *date;
141 struct address *address;
143 struct age_value *age;
146 struct source_citation *citation;
147 struct multimedia_link *mm_link;
148 struct note_sub *note;
149 struct age_value *husband_age;
150 struct age_value *wife_age;
151 struct xref_value *family;
152 char *adoption_parent;
153 struct user_data *extra;
155 struct event *previous;
159 struct xref_value *xref;
160 struct user_data *extra;
161 struct xref_list *next;
162 struct xref_list *previous;
165 struct personal_name {
170 char *surname_prefix;
173 struct source_citation *citation;
174 struct note_sub *note;
175 struct user_data *extra;
176 struct personal_name *next;
177 struct personal_name *previous;
182 struct user_data *extra;
183 struct pedigree *next;
184 struct pedigree *previous;
188 struct xref_value *family;
189 struct pedigree *pedigree;
190 struct note_sub *note;
191 struct user_data *extra;
192 struct family_link *next;
193 struct family_link *previous;
197 struct xref_value *to;
200 struct source_citation *citation;
201 struct note_sub *note;
202 struct user_data *extra;
203 struct association *next;
204 struct association *previous;
207 struct source_event {
208 char *recorded_events;
209 struct date_value *date_period;
211 struct user_data *extra;
212 struct source_event *next;
213 struct source_event *previous;
216 struct source_description {
219 struct user_data *extra;
220 struct source_description *next;
221 struct source_description *previous;
224 /* Main structures */
227 struct header_source {
231 struct header_corporation {
233 struct address *address;
238 struct date_value *date;
243 struct date_value *date;
245 struct xref_value *submitter;
246 struct xref_value *submission;
249 struct header_gedcom {
253 struct header_charset {
258 char *place_hierarchy;
260 struct user_data *extra;
265 struct xref_value *submitter;
268 char *nr_of_ancestor_gens;
269 char *nr_of_descendant_gens;
270 char *ordinance_process_flag;
272 struct user_data *extra;
278 struct xref_value *husband;
279 struct xref_value *wife;
280 struct xref_list *children;
281 char *nr_of_children;
282 struct xref_list *submitters;
283 struct lds_event *lds_spouse_sealing;
284 struct source_citation *citation;
285 struct multimedia_link *mm_link;
286 struct note_sub *note;
287 struct user_ref_number *ref;
289 struct change_date *change_date;
290 struct user_data *extra;
292 struct family *previous;
297 char *restriction_notice;
298 struct personal_name *name;
301 struct event *attribute;
302 struct lds_event *lds_individual_ordinance;
303 struct family_link *child_to_family;
304 struct family_link *spouse_to_family;
305 struct xref_list *submitters;
306 struct association *association;
307 struct xref_list *alias;
308 struct xref_list *ancestor_interest;
309 struct xref_list *descendant_interest;
310 struct source_citation *citation;
311 struct multimedia_link *mm_link;
312 struct note_sub *note;
313 char *record_file_nr;
314 char *ancestral_file_nr;
315 struct user_ref_number *ref;
317 struct change_date *change_date;
318 struct user_data *extra;
319 struct individual *next;
320 struct individual *previous;
327 struct note_sub *note;
329 struct xref_value *continued;
330 struct user_ref_number *ref;
332 struct change_date *change_date;
333 struct user_data *extra;
334 struct multimedia *next;
335 struct multimedia *previous;
341 struct source_citation *citation;
342 struct user_ref_number *ref;
344 struct change_date *change_date;
345 struct user_data *extra;
347 struct note *previous;
353 struct address *address;
355 struct note_sub *note;
356 struct user_ref_number *ref;
358 struct change_date *change_date;
359 struct user_data *extra;
360 struct repository *next;
361 struct repository *previous;
367 struct source_event *event;
369 struct note_sub *note;
377 struct xref_value *link;
378 struct note_sub *note;
379 struct source_description *description;
381 struct multimedia_link *mm_link;
382 struct note_sub *note;
383 struct user_ref_number *ref;
385 struct change_date *change_date;
386 struct user_data *extra;
388 struct source *previous;
394 struct address *address;
396 struct multimedia_link *mm_link;
398 char *record_file_nr;
400 struct change_date *change_date;
401 struct user_data *extra;
402 struct submitter *next;
403 struct submitter *previous;
410 struct xref_value *xref_value;
411 struct user_data *extra;
412 struct user_rec *next;
413 struct user_rec *previous;
418 int gom_parse_file(const char *file_name);
421 struct header* gom_get_header();
422 struct submission* gom_get_submission();
424 struct family* gom_get_first_family();
425 struct family* gom_get_family_by_xref(const char *xref);
427 struct individual* gom_get_first_individual();
428 struct individual* gom_get_individual_by_xref(const char *xref);
430 struct multimedia* gom_get_first_multimedia();
431 struct multimedia* gom_get_multimedia_by_xref(const char *xref);
433 struct note* gom_get_first_note();
434 struct note* gom_get_note_by_xref(const char *xref);
436 struct repository* gom_get_first_repository();
437 struct repository* gom_get_repository_by_xref(const char *xref);
439 struct source* gom_get_first_source();
440 struct source* gom_get_source_by_xref(const char *xref);
442 struct submitter* gom_get_first_submitter();
443 struct submitter* gom_get_submitter_by_xref(const char *xref);
445 struct user_rec* gom_get_first_user_rec();
446 struct user_rec* gom_get_user_rec_by_xref(const char *xref);
448 char* gom_get_string(char* data);
449 char* gom_set_string(char** data, const char* utf8_value);
451 char* gom_get_string_locale(char* data, int* conversion_failures);
452 char* gom_set_string_locale(char** data, const char* locale_value);
453 void gom_set_unknown(const char* unknown);
459 #endif /* __GEDCOM_GOM_H */