Function for moving an xref in a list.
[gedcom-parse.git] / include / gom.h
index 5a706cc74765ff9126b42d889c2b4bbd0a9ac913..fbc5e39855759e58deaf90fa90499a02618f5ca5 100644 (file)
@@ -25,6 +25,7 @@
 #define __GEDCOM_GOM_H
 
 #include "gedcom.h"
+#include <time.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -422,31 +423,51 @@ int  gom_new_model();
 int  gom_write_file(const char* file_name, int *total_conv_fails);
 
 struct header*     gom_get_header();
+int                gom_header_update_timestamp(time_t t);
+  
 struct submission* gom_get_submission();
+struct submission* gom_new_submission(const char* xrefstr);
+int                gom_delete_submission();
 
 struct family*     gom_get_first_family();
 struct family*     gom_get_family_by_xref(const char *xref);
+struct family*     gom_new_family(const char* xrefstr);
+int                gom_delete_family(struct family* obj);
 
 struct individual* gom_get_first_individual();
 struct individual* gom_get_individual_by_xref(const char *xref);
+struct individual* gom_new_individual(const char* xrefstr);
+int                gom_delete_individual(struct individual* obj);
 
 struct multimedia* gom_get_first_multimedia();
 struct multimedia* gom_get_multimedia_by_xref(const char *xref);
+struct multimedia* gom_new_multimedia(const char* xrefstr);
+int                gom_delete_multimedia(struct multimedia* obj);
 
 struct note*       gom_get_first_note();
 struct note*       gom_get_note_by_xref(const char *xref);
+struct note*       gom_new_note(const char* xrefstr);
+int                gom_delete_note(struct note* obj);
 
 struct repository* gom_get_first_repository();
 struct repository* gom_get_repository_by_xref(const char *xref);
+struct repository* gom_new_repository(const char* xrefstr);
+int                gom_delete_repository(struct repository* obj);
 
 struct source*     gom_get_first_source();
 struct source*     gom_get_source_by_xref(const char *xref);
+struct source*     gom_new_source(const char* xrefstr);
+int                gom_delete_source(struct source* obj);
 
 struct submitter*  gom_get_first_submitter();
 struct submitter*  gom_get_submitter_by_xref(const char *xref);
+struct submitter*  gom_new_submitter(const char* xrefstr);
+int                gom_delete_submitter(struct submitter* obj);
 
 struct user_rec*   gom_get_first_user_rec();
 struct user_rec*   gom_get_user_rec_by_xref(const char *xref);
+struct user_rec*   gom_new_user_rec(const char* xrefstr, const char* tag);
+int                gom_delete_user_rec(struct user_rec* obj);
 
 char* gom_get_string(char* data);
 char* gom_set_string(char** data, const char* utf8_str);
@@ -455,6 +476,27 @@ char* gom_get_string_for_locale(char* data, int* conversion_failures);
 char* gom_set_string_for_locale(char** data, const char* locale_str);
 void  gom_set_unknown(const char* unknown);
 
+typedef enum _DIR {
+  MOVE_UP,
+  MOVE_DOWN
+} Gom_direction;
+  
+struct xref_value* gom_set_xref(struct xref_value** data, const char* xref);
+struct xref_list*  gom_add_xref(struct xref_list** data, const char* xref);
+int                gom_remove_xref(struct xref_list** data, const char* xref);
+int                gom_move_xref(Gom_direction dir, struct xref_list** data,
+                                const char* xref);
+
+struct address*    gom_set_new_address(struct address** obj);
+int                gom_delete_address(struct address** obj);
+
+struct place*      gom_set_new_place(struct place** obj);
+int                gom_delete_place(struct place** obj);
+
+struct change_date* gom_set_new_change_date(struct change_date** obj);
+int                 gom_delete_change_date(struct change_date** obj);
+int                 gom_update_timestamp(struct change_date** obj, time_t t);
+  
 #ifdef __cplusplus
 }
 #endif