From 65f85baf7cde0af067fc93aaee04aeaa52437081 Mon Sep 17 00:00:00 2001 From: Stefano Zacchiroli Date: Fri, 29 Nov 2002 11:24:40 +0000 Subject: [PATCH] - added saveResultTo{Filename,File,Fd} --- .../gdome_xslt/C/gdome_xslt/gdome_xslt.c | 60 ++++++++++++++++++- .../gdome_xslt/C/gdome_xslt/gdome_xslt.h | 25 ++++++-- 2 files changed, 79 insertions(+), 6 deletions(-) diff --git a/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.c b/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.c index d3163a4fa..3c5dc42e2 100644 --- a/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.c +++ b/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.c @@ -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 + * Copyright (C) 2002: + * Claudio Sacerdoti Coen + * Stefano Zacchiroli * * 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 + * For more information, please send an email to {sacerdot,zack}@cs.unibo.it */ #include @@ -31,6 +33,7 @@ #include #include #include +#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); +} + diff --git a/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.h b/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.h index 7ae286d82..88da4ec0f 100644 --- a/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.h +++ b/helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.h @@ -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 + * Copyright (C) 2002: + * Claudio Sacerdoti Coen + * Stefano Zacchiroli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -21,10 +24,24 @@ * 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 + * 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); -- 2.39.2