Annotation of embedaddon/php/ext/mysqlnd/mysqlnd_reverse_api.c, revision 1.1.1.1
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
5: | Copyright (c) 2006-2012 The PHP Group |
6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Authors: Andrey Hristov <andrey@mysql.com> |
16: | Ulf Wendel <uwendel@mysql.com> |
17: | Georg Richter <georg@mysql.com> |
18: +----------------------------------------------------------------------+
19: */
20:
21: /* $Id: mysqlnd.c 317989 2011-10-10 20:49:28Z andrey $ */
22: #include "php.h"
23: #include "mysqlnd.h"
24: #include "mysqlnd_priv.h"
25: #include "mysqlnd_debug.h"
26: #include "mysqlnd_reverse_api.h"
27:
28:
29: static HashTable mysqlnd_api_ext_ht;
30:
31:
32: /* {{{ mysqlnd_reverse_api_init */
33: PHPAPI void
34: mysqlnd_reverse_api_init(TSRMLS_D)
35: {
36: zend_hash_init(&mysqlnd_api_ext_ht, 3, NULL, NULL, 1);
37: }
38: /* }}} */
39:
40:
41: /* {{{ mysqlnd_reverse_api_end */
42: PHPAPI void
43: mysqlnd_reverse_api_end(TSRMLS_D)
44: {
45: zend_hash_destroy(&mysqlnd_api_ext_ht);
46: }
47: /* }}} */
48:
49:
50: /* {{{ myslqnd_get_api_extensions */
51: PHPAPI HashTable *
52: mysqlnd_reverse_api_get_api_list(TSRMLS_D)
53: {
54: return &mysqlnd_api_ext_ht;
55: }
56: /* }}} */
57:
58:
59: /* {{{ mysqlnd_reverse_api_register_api */
60: PHPAPI void
61: mysqlnd_reverse_api_register_api(MYSQLND_REVERSE_API * apiext TSRMLS_DC)
62: {
63: zend_hash_add(&mysqlnd_api_ext_ht, apiext->module->name, strlen(apiext->module->name) + 1, &apiext,
64: sizeof(MYSQLND_REVERSE_API), NULL);
65: }
66: /* }}} */
67:
68:
69: /* {{{ zval_to_mysqlnd */
70: PHPAPI MYSQLND *
71: zval_to_mysqlnd(zval * zv TSRMLS_DC)
72: {
73: MYSQLND * retval;
74: MYSQLND_REVERSE_API ** elem;
75:
76: for (zend_hash_internal_pointer_reset(&mysqlnd_api_ext_ht);
77: zend_hash_get_current_data(&mysqlnd_api_ext_ht, (void **)&elem) == SUCCESS;
78: zend_hash_move_forward(&mysqlnd_api_ext_ht))
79: {
80: if ((*elem)->conversion_cb) {
81: retval = (*elem)->conversion_cb(zv TSRMLS_CC);
82: if (retval) {
83: return retval;
84: }
85: }
86: }
87:
88: return NULL;
89: }
90: /* }}} */
91:
92:
93: /*
94: * Local variables:
95: * tab-width: 4
96: * c-basic-offset: 4
97: * End:
98: * vim600: noet sw=4 ts=4 fdm=marker
99: * vim<600: noet sw=4 ts=4
100: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>