1/*
2 * Summary: interface for the XSLT functions not from XPath
3 * Description: a set of extra functions coming from XSLT but not in XPath
4 *
5 * Copy: See Copyright for the status of this software.
6 *
7 * Author: Daniel Veillard and Bjorn Reese <breese@users.sourceforge.net>
8 */
9
10#ifndef __XML_XSLT_FUNCTIONS_H__
11#define __XML_XSLT_FUNCTIONS_H__
12
13#include <libxml/xpath.h>
14#include <libxml/xpathInternals.h>
15#include "xsltexports.h"
16#include "xsltInternals.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22/**
23 * XSLT_REGISTER_FUNCTION_LOOKUP:
24 *
25 * Registering macro, not general purpose at all but used in different modules.
26 */
27#define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt)			\
28    xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt,		\
29	(xmlXPathFuncLookupFunc) xsltXPathFunctionLookup,	\
30	(void *)(ctxt->xpathCtxt));
31
32XSLTPUBFUN xmlXPathFunction XSLTCALL
33	xsltXPathFunctionLookup		(xmlXPathContextPtr ctxt,
34					 const xmlChar *name,
35					 const xmlChar *ns_uri);
36
37/*
38 * Interfaces for the functions implementations.
39 */
40
41XSLTPUBFUN void XSLTCALL
42	xsltDocumentFunction		(xmlXPathParserContextPtr ctxt,
43					 int nargs);
44XSLTPUBFUN void XSLTCALL
45	xsltKeyFunction			(xmlXPathParserContextPtr ctxt,
46					 int nargs);
47XSLTPUBFUN void XSLTCALL
48	xsltUnparsedEntityURIFunction	(xmlXPathParserContextPtr ctxt,
49					 int nargs);
50XSLTPUBFUN void XSLTCALL
51	xsltFormatNumberFunction	(xmlXPathParserContextPtr ctxt,
52					 int nargs);
53XSLTPUBFUN void XSLTCALL
54	xsltGenerateIdFunction		(xmlXPathParserContextPtr ctxt,
55					 int nargs);
56XSLTPUBFUN void XSLTCALL
57	xsltSystemPropertyFunction	(xmlXPathParserContextPtr ctxt,
58					 int nargs);
59XSLTPUBFUN void XSLTCALL
60	xsltElementAvailableFunction	(xmlXPathParserContextPtr ctxt,
61					 int nargs);
62XSLTPUBFUN void XSLTCALL
63	xsltFunctionAvailableFunction	(xmlXPathParserContextPtr ctxt,
64					 int nargs);
65
66/*
67 * And the registration
68 */
69
70XSLTPUBFUN void XSLTCALL
71	xsltRegisterAllFunctions	(xmlXPathContextPtr ctxt);
72
73#ifdef __cplusplus
74}
75#endif
76
77#endif /* __XML_XSLT_FUNCTIONS_H__ */
78
79