]> matita.cs.unibo.it Git - helm.git/commitdiff
- added saveResultTo{Filename,File,Fd}
authorStefano Zacchiroli <zack@upsilon.cc>
Fri, 29 Nov 2002 11:24:40 +0000 (11:24 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Fri, 29 Nov 2002 11:24:40 +0000 (11:24 +0000)
helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.c
helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.h

index d3163a4fab29781118b896dc4a8bd357897b9093..3c5dc42e2151670a5be31fa2211dc96d9e072b9f 100644 (file)
@@ -5,7 +5,9 @@
  * The code is largely based on the code of T.J. Mather's XML::GDOME::XSLT
  * Perl module (http://kobesearch.cpan.org/search?dist=XML-GDOME-XSLT)
  *
- * Copyright (C) 2002 Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+ * Copyright (C) 2002:
+ *     Claudio Sacerdoti Coen          <sacerdot@cs.unibo.it>
+ *     Stefano Zacchiroli              <zack@cs.unibo.it>
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -21,7 +23,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * For more information, please send an email to <sacerdot@cs.unibo.it>
+ * For more information, please send an email to {sacerdot,zack}@cs.unibo.it
  */
 
 #include <stdio.h>
@@ -31,6 +33,7 @@
 #include <libxslt/xsltutils.h>
 #include <libxslt/transform.h>
 #include <libxslt/imports.h>
+#include "gdome_xslt.h"
 
 // Begin of Gdome internals exposed
 typedef struct _Gdome_xml_Document Gdome_xml_Document;
@@ -96,3 +99,56 @@ GdomeDocument* applyStylesheet(GdomeDocument* source, xsltStylesheetPtr style_li
 
    return gdome_of_libxml(output_libxml);
 }
+
+/***************** serialization functions *****************/
+
+int            saveResultToFilename    (const char* name,
+                                        GdomeDocument* result,
+                                        xsltStylesheetPtr style_libxslt,
+                                        int compression)
+{
+       xmlDocPtr result_libxml;
+
+       if (result == NULL) return -1;
+       result_libxml = libxml_of_gdome(result);
+
+       xsltSetGenericDebugFunc(NULL, NULL);
+
+       return xsltSaveResultToFilename(name,
+                                       result_libxml,
+                                       style_libxslt,
+                                       compression);
+}
+
+int            saveResultToFile        (FILE* file,
+                                        GdomeDocument* result,
+                                        xsltStylesheetPtr style_libxslt)
+{
+       xmlDocPtr result_libxml;
+
+       if (result == NULL) return -1;
+       result_libxml = libxml_of_gdome(result);
+
+       xsltSetGenericDebugFunc(NULL, NULL);
+
+       return xsltSaveResultToFile(file,
+                                   result_libxml,
+                                   style_libxslt);
+}
+
+int            saveResultToFd          (int fd,
+                                        GdomeDocument* result,
+                                        xsltStylesheetPtr style_libxslt)
+{
+       xmlDocPtr result_libxml;
+
+       if (result == NULL) return -1;
+       result_libxml = libxml_of_gdome(result);
+
+       xsltSetGenericDebugFunc(NULL, NULL);
+
+       return xsltSaveResultToFd(fd,
+                                 result_libxml,
+                                 style_libxslt);
+}
+
index 7ae286d826a554f5c0014e1892d6b98872017684..88da4ec0ff381cd45642af54ac9a85fc804a98c7 100644 (file)
@@ -1,3 +1,4 @@
+
 /* This file implements a XSLT engine working on Gdome documents. In fact,
  * it just maps Gdome documents to libxml documents back and forth, and
  * applyes the transformation on libxml documents using libxlt.
@@ -5,7 +6,9 @@
  * The code is largely based on the code of T.J. Mather's XML::GDOME::XSLT
  * Perl module (http://kobesearch.cpan.org/search?dist=XML-GDOME-XSLT)
  *
- * Copyright (C) 2002 Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+ * Copyright (C) 2002:
+ *     Claudio Sacerdoti Coen          <sacerdot@cs.unibo.it>
+ *     Stefano Zacchiroli              <zack@cs.unibo.it>
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * For more information, please send an email to <sacerdot@cs.unibo.it>
+ * For more information, please send an email to {sacerdot,zack}@cs.unibo.it
  */
 
 
-xsltStylesheetPtr processStylesheet(GdomeDocument* style);
+xsltStylesheetPtr      processStylesheet       (GdomeDocument* style);
+
+GdomeDocument*                 applyStylesheet         (GdomeDocument* source,
+                                                xsltStylesheetPtr style_libxslt,
+                                                const char** params);
+
+int                    saveResultToFilename    (const char* name,
+                                                GdomeDocument* result,
+                                                xsltStylesheetPtr style_libxslt,
+                                                int compression);
+int                    saveResultToFile        (FILE* file,
+                                                GdomeDocument* result,
+                                                xsltStylesheetPtr style_libxslt);
+int                    saveResultToFd          (int fd,
+                                                GdomeDocument* result,
+                                                xsltStylesheetPtr style_libxslt);
 
-GdomeDocument* applyStylesheet(GdomeDocument* source, xsltStylesheetPtr style_libxslt, const char** params);