+
+extern "C" CAMLprim value caml_xml_tree_save(value tree,value filename){
+ CAMLparam2(tree,filename);
+ XMLTREE(tree)->Save((unsigned char *) String_val(filename));
+ CAMLreturn (Val_unit);
+}
+
+extern "C" CAMLprim value caml_xml_tree_load(value filename,value samplerate){
+ CAMLparam2(filename,samplerate);
+ CAMLlocal1(doc);
+ XMLTree * tree;
+ tree = XMLTree::Load((unsigned char *) String_val(filename),Int_val(samplerate));
+ caml_init_ops();
+ doc = caml_alloc_custom(&ops,sizeof(XMLTree*),1,2);
+ memcpy(Data_custom_val(doc),&tree,sizeof(XMLTree*));
+ CAMLreturn(doc);
+}