/* Fo
 * fo-xslt-transformer.c: Boxed object type for libxslt XSLT processor
 *
 * Copyright (C) 2003 Sun Microsystems
 *
 * $Id: fo-xslt-transformer.h,v 1.3 2003/05/16 10:48:27 tonygraham Exp $
 *
 * See Copying for the status of this software.
 */

#ifndef __FO_XSLT_TRANSFORMER_H__
#define __FO_XSLT_TRANSFORMER_H__

#include <libfo/fo-utils.h>
#include <libfo/fo-libfo-context.h>

G_BEGIN_DECLS

#define FO_XSLT_TRANSFORMER_ERROR fo_xslt_transformer_error_quark ()
GQuark fo_xslt_transformer_error_quark (void);

typedef enum
{
  FO_XSLT_TRANSFORMER_ERROR_FAILED,
  FO_XSLT_TRANSFORMER_ERROR_TRANSFORM_FAILED,
  FO_XSLT_TRANSFORMER_ERROR_PARSE_FAILED,
  FO_XSLT_TRANSFORMER_ERROR_NO_FILENAME,
  FO_XSLT_TRANSFORMER_ERROR_NO_XML_DOC,
  FO_XSLT_TRANSFORMER_ERROR_NO_SGML_CATALOG_FILES
} FoXsltTransformerError;

typedef struct _FoXsltTransformer FoXsltTransformer;

#define FO_TYPE_XSLT_TRANSFORMER       (fo_xslt_transformer_get_type ())
#define FO_IS_XSLT_TRANSFORMER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), FO_TYPE_XSLT_TRANSFORMER))


GType               fo_xslt_transformer_get_type  (void);
FoXsltTransformer * fo_xslt_transformer_new       (void);
FoXsltTransformer * fo_xslt_transformer_ref       (FoXsltTransformer  *fo_xslt_transformer);
void                fo_xslt_transformer_unref     (FoXsltTransformer  *fo_xslt_transformer);
gboolean            fo_xslt_transformer_transform (FoXsltTransformer       *fo_xslt_transformer,
						   FoLibfoContext *libfo_context,
						   GError        **error);
const gchar * fo_xslt_transformer_get_filename (FoXsltTransformer *fo_xslt_transformer);
void          fo_xslt_transformer_set_filename (FoXsltTransformer *fo_xslt_transformer,
						const gchar *filename);
FoXmlDoc * fo_xslt_transformer_get_xml_doc (FoXsltTransformer *fo_xslt_transformer);
void       fo_xslt_transformer_set_xml_doc (FoXsltTransformer *fo_xslt_transformer,
					    FoXmlDoc          *xml_doc);
FoXmlDoc * fo_xslt_transformer_get_result  (FoXsltTransformer *fo_xslt_transformer);

G_END_DECLS

#endif /* !__FO_XSLT_TRANSFORMER_H__ */
