1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2006 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Sterling Hughes <sterling@php.net> |
+----------------------------------------------------------------------+
*/
#ifndef PHP_XSLT_H
#define PHP_XSLT_H
#include "php.h"
#if HAVE_SABLOT_BACKEND
#include "php_xslt.h"
#include <sablot.h>
extern zend_module_entry xslt_module_entry;
#define phpext_xslt_ptr &xslt_module_entry
#ifdef PHP_WIN32
#define PHP_XSLT_API __declspec(dllexport)
#else
#define PHP_XSLT_API
#endif
#define XSLT_SCHEME(handle) ((handle)->handlers->scheme)
#define XSLT_SAX(handle) ((handle)->handlers->sax)
#define XSLT_ERROR(handle) ((handle)->handlers->error)
#define XSLT_PROCESSOR(handle) ((handle)->processor.ptr)
#define XSLT_SITUATION(handle) ((handle)->processor.sit)
#define XSLT_ERRNO(handle) ((handle)->err->no)
#define XSLT_ERRSTR(handle) ((handle)->err->str)
#define XSLT_LOG(handle) ((handle)->err->log)
#define XSLT_BASE_ISSET(handle) ((handle)->base_isset)
#define XSLT_FUNCH_FREE(__var) if (__var) zval_ptr_dtor(&(__var));
#define XSLT_REG_ERRMSG(msg, handle) if (XSLT_ERRSTR(handle)) efree(XSLT_ERRSTR(handle)); \
XSLT_ERRSTR(handle) = estrdup(msg);
#define XSLT_NO_INFO "No information available."
PHP_MINIT_FUNCTION(xslt);
PHP_MINFO_FUNCTION(xslt);
PHP_FUNCTION(xslt_create);
PHP_FUNCTION(xslt_set_sax_handlers);
PHP_FUNCTION(xslt_set_scheme_handlers);
PHP_FUNCTION(xslt_set_error_handler);
PHP_FUNCTION(xslt_set_base);
PHP_FUNCTION(xslt_set_encoding);
PHP_FUNCTION(xslt_set_log);
PHP_FUNCTION(xslt_process);
PHP_FUNCTION(xslt_error);
PHP_FUNCTION(xslt_errno);
PHP_FUNCTION(xslt_free);
PHP_FUNCTION(xslt_set_object);
PHP_FUNCTION(xslt_setopt);
#ifdef HAVE_SABLOT_GET_OPTIONS
PHP_FUNCTION(xslt_getopt);
#endif
PHP_FUNCTION(xslt_backend_version);
PHP_FUNCTION(xslt_backend_name);
PHP_FUNCTION(xslt_backend_info);
struct scheme_handlers {
zval *sh_get_all;
zval *sh_open;
zval *sh_get;
zval *sh_put;
zval *sh_close;
};
struct sax_handlers {
zval *doc_start;
zval *element_start;
zval *element_end;
zval *namespace_start;
zval *namespace_end;
zval *comment;
zval *pi;
zval *characters;
zval *doc_end;
};
struct xslt_handlers {
struct scheme_handlers scheme;
struct sax_handlers sax;
zval *error;
};
struct xslt_processor {
SablotHandle ptr;
SablotSituation sit;
long idx;
};
struct xslt_log {
char *path;
int fd;
int do_log;
};
struct xslt_error {
struct xslt_log log;
char *str;
int no;
};
typedef struct {
struct xslt_handlers *handlers;
struct xslt_processor processor;
struct xslt_error *err;
zval *object;
unsigned short base_isset;
} php_xslt;
#else
#define phpext_xslt_ptr NULL
#endif
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
|