Annotation of embedaddon/php/ext/mysqlnd/mysqlnd_ext_plugin.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 318221 2011-10-19 15:04:12Z andrey $ */
! 22: #include "php.h"
! 23: #include "mysqlnd.h"
! 24: #include "mysqlnd_priv.h"
! 25: #include "mysqlnd_result.h"
! 26: #include "mysqlnd_debug.h"
! 27:
! 28: static struct st_mysqlnd_conn_methods * mysqlnd_conn_methods;
! 29: static struct st_mysqlnd_conn_data_methods * mysqlnd_conn_data_methods;
! 30: static struct st_mysqlnd_stmt_methods * mysqlnd_stmt_methods;
! 31:
! 32: /* {{{ _mysqlnd_plugin_get_plugin_connection_data */
! 33: PHPAPI void **
! 34: _mysqlnd_plugin_get_plugin_connection_data(const MYSQLND * conn, unsigned int plugin_id TSRMLS_DC)
! 35: {
! 36: DBG_ENTER("_mysqlnd_plugin_get_plugin_connection_data");
! 37: DBG_INF_FMT("plugin_id=%u", plugin_id);
! 38: if (!conn || plugin_id >= mysqlnd_plugin_count()) {
! 39: return NULL;
! 40: }
! 41: DBG_RETURN((void *)((char *)conn + sizeof(MYSQLND) + plugin_id * sizeof(void *)));
! 42: }
! 43: /* }}} */
! 44:
! 45:
! 46: /* {{{ _mysqlnd_plugin_get_plugin_connection_data_data */
! 47: PHPAPI void **
! 48: _mysqlnd_plugin_get_plugin_connection_data_data(const MYSQLND_CONN_DATA * conn, unsigned int plugin_id TSRMLS_DC)
! 49: {
! 50: DBG_ENTER("_mysqlnd_plugin_get_plugin_connection_data_data");
! 51: DBG_INF_FMT("plugin_id=%u", plugin_id);
! 52: if (!conn || plugin_id >= mysqlnd_plugin_count()) {
! 53: return NULL;
! 54: }
! 55: DBG_RETURN((void *)((char *)conn + sizeof(MYSQLND_CONN_DATA) + plugin_id * sizeof(void *)));
! 56: }
! 57: /* }}} */
! 58:
! 59:
! 60: /* {{{ _mysqlnd_plugin_get_plugin_result_data */
! 61: PHPAPI void ** _mysqlnd_plugin_get_plugin_result_data(const MYSQLND_RES * result, unsigned int plugin_id TSRMLS_DC)
! 62: {
! 63: DBG_ENTER("_mysqlnd_plugin_get_plugin_result_data");
! 64: DBG_INF_FMT("plugin_id=%u", plugin_id);
! 65: if (!result || plugin_id >= mysqlnd_plugin_count()) {
! 66: return NULL;
! 67: }
! 68: DBG_RETURN((void *)((char *)result + sizeof(MYSQLND_RES) + plugin_id * sizeof(void *)));
! 69: }
! 70: /* }}} */
! 71:
! 72:
! 73: /* {{{ _mysqlnd_plugin_get_plugin_protocol_data */
! 74: PHPAPI void **
! 75: _mysqlnd_plugin_get_plugin_protocol_data(const MYSQLND_PROTOCOL * protocol, unsigned int plugin_id TSRMLS_DC)
! 76: {
! 77: DBG_ENTER("_mysqlnd_plugin_get_plugin_protocol_data");
! 78: DBG_INF_FMT("plugin_id=%u", plugin_id);
! 79: if (!protocol || plugin_id >= mysqlnd_plugin_count()) {
! 80: return NULL;
! 81: }
! 82: DBG_RETURN((void *)((char *)protocol + sizeof(MYSQLND_PROTOCOL) + plugin_id * sizeof(void *)));
! 83: }
! 84: /* }}} */
! 85:
! 86:
! 87: /* {{{ _mysqlnd_plugin_get_plugin_stmt_data */
! 88: PHPAPI void ** _mysqlnd_plugin_get_plugin_stmt_data(const MYSQLND_STMT * stmt, unsigned int plugin_id TSRMLS_DC)
! 89: {
! 90: DBG_ENTER("_mysqlnd_plugin_get_plugin_stmt_data");
! 91: DBG_INF_FMT("plugin_id=%u", plugin_id);
! 92: if (!stmt || plugin_id >= mysqlnd_plugin_count()) {
! 93: return NULL;
! 94: }
! 95: DBG_RETURN((void *)((char *)stmt + sizeof(MYSQLND_STMT) + plugin_id * sizeof(void *)));
! 96: }
! 97: /* }}} */
! 98:
! 99:
! 100: /* {{{ _mysqlnd_plugin_get_plugin_net_data */
! 101: PHPAPI void ** _mysqlnd_plugin_get_plugin_net_data(const MYSQLND_NET * net, unsigned int plugin_id TSRMLS_DC)
! 102: {
! 103: DBG_ENTER("_mysqlnd_plugin_get_plugin_net_data");
! 104: DBG_INF_FMT("plugin_id=%u", plugin_id);
! 105: if (!net || plugin_id >= mysqlnd_plugin_count()) {
! 106: return NULL;
! 107: }
! 108: DBG_RETURN((void *)((char *)net + sizeof(MYSQLND_NET) + plugin_id * sizeof(void *)));
! 109: }
! 110: /* }}} */
! 111:
! 112:
! 113:
! 114: /* {{{ mysqlnd_conn_get_methods */
! 115: PHPAPI struct st_mysqlnd_conn_methods *
! 116: mysqlnd_conn_get_methods()
! 117: {
! 118: return mysqlnd_conn_methods;
! 119: }
! 120: /* }}} */
! 121:
! 122: /* {{{ mysqlnd_conn_set_methods */
! 123: PHPAPI void mysqlnd_conn_set_methods(struct st_mysqlnd_conn_methods *methods)
! 124: {
! 125: mysqlnd_conn_methods = methods;
! 126: }
! 127: /* }}} */
! 128:
! 129:
! 130: /* {{{ mysqlnd_conn_get_methods */
! 131: PHPAPI struct st_mysqlnd_conn_data_methods *
! 132: mysqlnd_conn_data_get_methods()
! 133: {
! 134: return mysqlnd_conn_data_methods;
! 135: }
! 136: /* }}} */
! 137:
! 138: /* {{{ mysqlnd_conn_set_methods */
! 139: PHPAPI void mysqlnd_conn_data_set_methods(struct st_mysqlnd_conn_data_methods * methods)
! 140: {
! 141: mysqlnd_conn_data_methods = methods;
! 142: }
! 143: /* }}} */
! 144:
! 145:
! 146: /* {{{ mysqlnd_result_get_methods */
! 147: PHPAPI struct st_mysqlnd_res_methods *
! 148: mysqlnd_result_get_methods()
! 149: {
! 150: return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_res);
! 151: }
! 152: /* }}} */
! 153:
! 154:
! 155: /* {{{ mysqlnd_result_set_methods */
! 156: PHPAPI void
! 157: mysqlnd_result_set_methods(struct st_mysqlnd_res_methods * methods)
! 158: {
! 159: MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_res) = *methods;
! 160: }
! 161: /* }}} */
! 162:
! 163:
! 164: /* {{{ mysqlnd_stmt_get_methods */
! 165: PHPAPI struct st_mysqlnd_stmt_methods *
! 166: mysqlnd_stmt_get_methods()
! 167: {
! 168: return mysqlnd_stmt_methods;
! 169: }
! 170: /* }}} */
! 171:
! 172:
! 173: /* {{{ mysqlnd_stmt_set_methods */
! 174: PHPAPI void
! 175: mysqlnd_stmt_set_methods(struct st_mysqlnd_stmt_methods *methods)
! 176: {
! 177: mysqlnd_stmt_methods = methods;
! 178: }
! 179: /* }}} */
! 180:
! 181:
! 182: /* {{{ mysqlnd_protocol_get_methods */
! 183: PHPAPI struct st_mysqlnd_protocol_methods *
! 184: mysqlnd_protocol_get_methods()
! 185: {
! 186: return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_protocol);
! 187: }
! 188: /* }}} */
! 189:
! 190:
! 191: /* {{{ mysqlnd_protocol_set_methods */
! 192: PHPAPI void
! 193: mysqlnd_protocol_set_methods(struct st_mysqlnd_protocol_methods * methods)
! 194: {
! 195: MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_protocol) = *methods;
! 196: }
! 197: /* }}} */
! 198:
! 199:
! 200: /* {{{ mysqlnd_net_get_methods */
! 201: PHPAPI struct st_mysqlnd_net_methods *
! 202: mysqlnd_net_get_methods()
! 203: {
! 204: return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_net);
! 205: }
! 206: /* }}} */
! 207:
! 208:
! 209: /* {{{ mysqlnd_net_set_methods */
! 210: PHPAPI void
! 211: mysqlnd_net_set_methods(struct st_mysqlnd_net_methods * methods)
! 212: {
! 213: MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_net) = *methods;
! 214: }
! 215: /* }}} */
! 216:
! 217:
! 218:
! 219: /*
! 220: * Local variables:
! 221: * tab-width: 4
! 222: * c-basic-offset: 4
! 223: * End:
! 224: * vim600: noet sw=4 ts=4 fdm=marker
! 225: * vim<600: noet sw=4 ts=4
! 226: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>