31 #include "gnc-lot-p.h" 33 #include "gnc-xml-helper.h" 35 #include "sixtp-utils.h" 36 #include "sixtp-parsers.h" 37 #include "sixtp-utils.h" 38 #include "sixtp-dom-parsers.h" 39 #include "sixtp-dom-generators.h" 42 #include "io-gncxml-gen.h" 44 #include "sixtp-dom-parsers.h" 46 static QofLogModule log_module = GNC_MOD_IO;
48 const gchar* lot_version_string =
"2.0.0";
51 #define gnc_lot_string "gnc:lot" 52 #define lot_id_string "lot:id" 53 #define lot_slots_string "lot:slots" 56 gnc_lot_dom_tree_create (GNCLot* lot)
60 ENTER (
"(lot=%p)", lot);
61 ret = xmlNewNode (NULL, BAD_CAST gnc_lot_string);
62 xmlSetProp (ret, BAD_CAST
"version", BAD_CAST lot_version_string);
64 xmlAddChild (ret, guid_to_dom_tree (lot_id_string, gnc_lot_get_guid (lot)));
66 xmlAddChild (ret, qof_instance_slots_to_dom_tree (lot_slots_string,
82 lot_id_handler (xmlNodePtr node, gpointer p)
84 struct lot_pdata* pdata =
static_cast<decltype (pdata)
> (p);
87 ENTER (
"(lot=%p)", pdata->lot);
88 guid = dom_tree_to_guid (node);
89 gnc_lot_set_guid (pdata->lot, *guid);
98 lot_slots_handler (xmlNodePtr node, gpointer p)
100 struct lot_pdata* pdata =
static_cast<decltype (pdata)
> (p);
103 ENTER (
"(lot=%p)", pdata->lot);
104 success = dom_tree_create_instance_slots (node, QOF_INSTANCE (pdata->lot));
107 g_return_val_if_fail (success, FALSE);
114 { lot_id_string, lot_id_handler, 1, 0 },
115 { lot_slots_string, lot_slots_handler, 0, 0 },
120 gnc_lot_end_handler (gpointer data_for_children,
121 GSList* data_from_children, GSList* sibling_data,
122 gpointer parent_data, gpointer global_data,
123 gpointer* result,
const gchar* tag)
126 xmlNodePtr tree = (xmlNodePtr)data_for_children;
127 gxpf_data* gdata = (gxpf_data*)global_data;
128 QofBook* book =
static_cast<decltype (book)
> (gdata->bookdata);
142 g_return_val_if_fail (tree, FALSE);
144 lot = dom_tree_to_lot (tree, book);
145 ENTER (
"(lot=%p)", lot);
148 gdata->cb (tag, gdata->parsedata, lot);
158 dom_tree_to_lot (xmlNodePtr node, QofBook* book)
164 lot = gnc_lot_new (book);
165 ENTER (
"(lot=%p)", lot);
170 successful = dom_tree_generic_parse (node, lot_handlers_v2,
174 PERR (
"failed to parse lot");
175 gnc_lot_destroy (lot);
184 gnc_lot_sixtp_parser_create (
void)
186 return sixtp_dom_parser_new (gnc_lot_end_handler, NULL, NULL);
#define PERR(format, args...)
Log a serious error.
#define ENTER(format, args...)
Print a function entry debugging message.
api for GnuCash version 2 XML-based file format
#define LEAVE(format, args...)
Print a function exit debugging message.
The type used to store guids in C.