forked from mgdm/OpenCV-for-PHP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
opencv.cpp
160 lines (139 loc) · 4.36 KB
/
opencv.cpp
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 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 |
| [email protected] so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Michael Maclean <[email protected]> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "php_opencv.h"
extern "C" {
#include "php_ini.h"
#include "ext/standard/info.h"
}
/* If you declare any globals in php_opencv.h uncomment this:
ZEND_DECLARE_MODULE_GLOBALS(opencv)
*/
/* True global resources - no need for thread safety here */
static int le_opencv;
zend_error_handling opencv_original_error_handling;
PHP_OPENCV_API void php_opencv_basedir_check(const char *filename TSRMLS_DC) {
char *error_message;
int status;
#if PHP_VERSION_ID < 50400
if (PG(safe_mode) && (!php_checkuid_ex(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR, CHECKUID_NO_ERRORS))) {
error_message = estrdup("Could not access file due to safe_mode restrictions");
zend_throw_exception(opencv_ce_cvexception, (char *) error_message, status TSRMLS_CC);
efree(error_message);
return;
}
#endif
if (PG(open_basedir) && php_check_open_basedir_ex(filename, 0 TSRMLS_CC)) {
error_message = estrdup("Could not access file due to open_basedir restrictions");
zend_throw_exception(opencv_ce_cvexception, error_message, status TSRMLS_CC);
efree(error_message);
return;
}
}
zend_class_entry *opencv_ce_cv;
/* {{{ proto void contruct()
OpenCV CANNOT be extended in userspace, this will throw an exception on use */
PHP_METHOD(OpenCV, __construct)
{
zend_throw_exception(opencv_ce_cvexception, "OpenCV cannot be constructed", 0 TSRMLS_CC);
}
/* }}} */
/* {{{ opencv_functions[]
*
* Every user visible function must have an entry in opencv_functions[].
*/
const zend_function_entry opencv_functions[] = {
{NULL, NULL, NULL} /* Must be the last line in opencv_functions[] */
};
/* }}} */
/* {{{ opencv_module_entry
*/
zend_module_entry opencv_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"opencv",
opencv_functions,
PHP_MINIT(opencv),
PHP_MSHUTDOWN(opencv),
PHP_RINIT(opencv),
NULL,
PHP_MINFO(opencv),
#if ZEND_MODULE_API_NO >= 20010901
"0.1", /* Replace with version number for your extension */
#endif
STANDARD_MODULE_PROPERTIES
};
/* }}} */
#ifdef COMPILE_DL_OPENCV
ZEND_GET_MODULE(opencv)
#endif
/* {{{ PHP_MINIT_FUNCTION
*/
PHP_MINIT_FUNCTION(opencv)
{
/* If you have INI entries, uncomment these lines
REGISTER_INI_ENTRIES();
*/
PHP_MINIT(opencv_error)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(opencv_mat)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(opencv_image)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(opencv_histogram)(INIT_FUNC_ARGS_PASSTHRU);
PHP_MINIT(opencv_capture)(INIT_FUNC_ARGS_PASSTHRU);
return SUCCESS;
}
/* }}} */
/* {{{ PHP_MSHUTDOWN_FUNCTION
*/
PHP_MSHUTDOWN_FUNCTION(opencv)
{
/* uncomment this line if you have INI entries
UNREGISTER_INI_ENTRIES();
*/
return SUCCESS;
}
/* }}} */
/* {{{ PHP_RINIT_FUNCTION */
PHP_RINIT_FUNCTION(opencv)
{
return SUCCESS;
}
/* {{{ PHP_MINFO_FUNCTION
*/
PHP_MINFO_FUNCTION(opencv)
{
php_info_print_table_start();
php_info_print_table_header(2, "OpenCV support", "Enabled");
php_info_print_table_row(2, "OpenCV library version", CV_VERSION);
php_info_print_table_end();
/* Remove comments if you have entries in php.ini
DISPLAY_INI_ENTRIES();
*/
}
/* }}} */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/