Annotation of embedaddon/php/ext/mysqlnd/mysqlnd_reverse_api.c, revision 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>