From: Andrey Hristov Date: Mon, 12 Oct 2015 18:11:10 +0000 (+0200) Subject: MNDR: X-Git-Tag: php-7.1.0alpha1~799 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab961ca3476515ac5d9c56f58f315afef16335b2;p=php MNDR: - remove export of functions and have things exported thru an interface with default implementation --- diff --git a/ext/mysqlnd/mysqlnd_ext_plugin.c b/ext/mysqlnd/mysqlnd_ext_plugin.c index 1ba0b85f48..a4d4c09474 100644 --- a/ext/mysqlnd/mysqlnd_ext_plugin.c +++ b/ext/mysqlnd/mysqlnd_ext_plugin.c @@ -24,16 +24,17 @@ #include "mysqlnd_priv.h" #include "mysqlnd_result.h" #include "mysqlnd_debug.h" +#include "mysqlnd_ext_plugin.h" static struct st_mysqlnd_conn_methods * mysqlnd_conn_methods; static struct st_mysqlnd_conn_data_methods * mysqlnd_conn_data_methods; static struct st_mysqlnd_stmt_methods * mysqlnd_stmt_methods; -/* {{{ _mysqlnd_plugin_get_plugin_connection_data */ -PHPAPI void ** -_mysqlnd_plugin_get_plugin_connection_data(const MYSQLND * conn, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_connection_data */ +static void ** +mysqlnd_plugin__get_plugin_connection_data(const MYSQLND * conn, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_connection_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_connection_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!conn || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -43,11 +44,11 @@ _mysqlnd_plugin_get_plugin_connection_data(const MYSQLND * conn, unsigned int pl /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_connection_data_data */ -PHPAPI void ** -_mysqlnd_plugin_get_plugin_connection_data_data(const MYSQLND_CONN_DATA * conn, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_connection_data_data */ +static void ** +mysqlnd_plugin__get_plugin_connection_data_data(const MYSQLND_CONN_DATA * conn, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_connection_data_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_connection_data_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!conn || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -57,10 +58,11 @@ _mysqlnd_plugin_get_plugin_connection_data_data(const MYSQLND_CONN_DATA * conn, /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_result_data */ -PHPAPI void ** _mysqlnd_plugin_get_plugin_result_data(const MYSQLND_RES * result, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_result_data */ +static void ** +mysqlnd_plugin__get_plugin_result_data(const MYSQLND_RES * result, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_result_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_result_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!result || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -70,10 +72,11 @@ PHPAPI void ** _mysqlnd_plugin_get_plugin_result_data(const MYSQLND_RES * result /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_result_unbuffered_data */ -PHPAPI void ** _mysqlnd_plugin_get_plugin_result_unbuffered_data(const MYSQLND_RES_UNBUFFERED * result, unsigned int plugin_id) +/* {{{ _mysqlnd_plugin__get_plugin_result_unbuffered_data */ +static void ** +mysqlnd_plugin__get_plugin_result_unbuffered_data(const MYSQLND_RES_UNBUFFERED * result, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_result_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_result_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!result || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -83,10 +86,11 @@ PHPAPI void ** _mysqlnd_plugin_get_plugin_result_unbuffered_data(const MYSQLND_R /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_result_buffered_data */ -PHPAPI void ** _mysqlnd_plugin_get_plugin_result_buffered_data_zval(const MYSQLND_RES_BUFFERED_ZVAL * result, unsigned int plugin_id) +/* {{{ _mysqlnd_plugin__get_plugin_result_buffered_data */ +static void ** +mysqlnd_plugin__get_plugin_result_buffered_data_zval(const MYSQLND_RES_BUFFERED_ZVAL * result, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_result_data"); + DBG_ENTER("_mysqlnd_plugin__get_plugin_result_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!result || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -95,10 +99,11 @@ PHPAPI void ** _mysqlnd_plugin_get_plugin_result_buffered_data_zval(const MYSQLN } /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_result_buffered_data */ -PHPAPI void ** _mysqlnd_plugin_get_plugin_result_buffered_data_c(const MYSQLND_RES_BUFFERED_C * result, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_result_buffered_data */ +static void ** +mysqlnd_plugin__get_plugin_result_buffered_data_c(const MYSQLND_RES_BUFFERED_C * result, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_result_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_result_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!result || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -108,11 +113,11 @@ PHPAPI void ** _mysqlnd_plugin_get_plugin_result_buffered_data_c(const MYSQLND_R /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_protocol_data */ -PHPAPI void ** -_mysqlnd_plugin_get_plugin_protocol_data(const MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * factory, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_protocol_data */ +static void ** +mysqlnd_plugin__get_plugin_protocol_data(const MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * factory, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_protocol_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_protocol_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!factory || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -122,10 +127,11 @@ _mysqlnd_plugin_get_plugin_protocol_data(const MYSQLND_PROTOCOL_PAYLOAD_DECODER_ /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_stmt_data */ -PHPAPI void ** _mysqlnd_plugin_get_plugin_stmt_data(const MYSQLND_STMT * stmt, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_stmt_data */ +static void ** +mysqlnd_plugin__get_plugin_stmt_data(const MYSQLND_STMT * stmt, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_stmt_data"); + DBG_ENTER("mysqlnd_plugin__get_plugin_stmt_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!stmt || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -135,10 +141,11 @@ PHPAPI void ** _mysqlnd_plugin_get_plugin_stmt_data(const MYSQLND_STMT * stmt, u /* }}} */ -/* {{{ _mysqlnd_plugin_get_plugin_net_data */ -PHPAPI void ** _mysqlnd_plugin_get_plugin_net_data(const MYSQLND_NET * net, unsigned int plugin_id) +/* {{{ mysqlnd_plugin__get_plugin_net_data */ +static void ** +mysqlnd_plugin__get_plugin_net_data(const MYSQLND_NET * net, unsigned int plugin_id) { - DBG_ENTER("_mysqlnd_plugin_get_plugin_net_data"); + DBG_ENTER("_mysqlnd_plugin__get_plugin_net_data"); DBG_INF_FMT("plugin_id=%u", plugin_id); if (!net || plugin_id >= mysqlnd_plugin_count()) { return NULL; @@ -147,163 +154,220 @@ PHPAPI void ** _mysqlnd_plugin_get_plugin_net_data(const MYSQLND_NET * net, unsi } /* }}} */ - -/* {{{ mysqlnd_conn_get_methods */ -PHPAPI struct st_mysqlnd_object_factory_methods * -mysqlnd_object_factory_get_methods() +struct st_mysqlnd_plugin__plugin_area_getters mysqlnd_plugin_area_getters = +{ + mysqlnd_plugin__get_plugin_connection_data, + mysqlnd_plugin__get_plugin_connection_data_data, + mysqlnd_plugin__get_plugin_result_data, + mysqlnd_plugin__get_plugin_result_unbuffered_data, + mysqlnd_plugin__get_plugin_result_buffered_data_zval, + mysqlnd_plugin__get_plugin_result_buffered_data_c, + mysqlnd_plugin__get_plugin_stmt_data, + mysqlnd_plugin__get_plugin_protocol_data, + mysqlnd_plugin__get_plugin_net_data, +}; + + + +/* {{{ _mysqlnd_object_factory_get_methods */ +static struct st_mysqlnd_object_factory_methods * +_mysqlnd_object_factory_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory); } /* }}} */ /* {{{ mysqlnd_conn_set_methods */ -PHPAPI void mysqlnd_object_factory_set_methods(struct st_mysqlnd_object_factory_methods *methods) +static void +_mysqlnd_object_factory_set_methods(struct st_mysqlnd_object_factory_methods *methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_object_factory) = *methods; } /* }}} */ -/* {{{ mysqlnd_conn_get_methods */ -PHPAPI struct st_mysqlnd_conn_methods * -mysqlnd_conn_get_methods() +/* {{{ _mysqlnd_conn_get_methods */ +static struct st_mysqlnd_conn_methods * +_mysqlnd_conn_get_methods() { return mysqlnd_conn_methods; } /* }}} */ -/* {{{ mysqlnd_conn_set_methods */ -PHPAPI void mysqlnd_conn_set_methods(struct st_mysqlnd_conn_methods *methods) +/* {{{ _mysqlnd_conn_set_methods */ +static void +_mysqlnd_conn_set_methods(struct st_mysqlnd_conn_methods *methods) { mysqlnd_conn_methods = methods; } /* }}} */ -/* {{{ mysqlnd_conn_get_methods */ -PHPAPI struct st_mysqlnd_conn_data_methods * -mysqlnd_conn_data_get_methods() +/* {{{ _mysqlnd_conn_data_get_methods */ +static struct st_mysqlnd_conn_data_methods * +_mysqlnd_conn_data_get_methods() { return mysqlnd_conn_data_methods; } /* }}} */ -/* {{{ mysqlnd_conn_set_methods */ -PHPAPI void mysqlnd_conn_data_set_methods(struct st_mysqlnd_conn_data_methods * methods) +/* {{{ _mysqlnd_conn_data_set_methods */ +static void +_mysqlnd_conn_data_set_methods(struct st_mysqlnd_conn_data_methods * methods) { mysqlnd_conn_data_methods = methods; } /* }}} */ -/* {{{ mysqlnd_result_get_methods */ -PHPAPI struct st_mysqlnd_res_methods * -mysqlnd_result_get_methods() +/* {{{ _mysqlnd_result_get_methods */ +static struct st_mysqlnd_res_methods * +_mysqlnd_result_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_res); } /* }}} */ -/* {{{ mysqlnd_result_set_methods */ -PHPAPI void -mysqlnd_result_set_methods(struct st_mysqlnd_res_methods * methods) +/* {{{ _mysqlnd_result_set_methods */ +static void +_mysqlnd_result_set_methods(struct st_mysqlnd_res_methods * methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_res) = *methods; } /* }}} */ -/* {{{ mysqlnd_result_unbuffered_get_methods */ -PHPAPI struct st_mysqlnd_result_unbuffered_methods * -mysqlnd_result_unbuffered_get_methods() +/* {{{ _mysqlnd_result_unbuffered_get_methods */ +static struct st_mysqlnd_result_unbuffered_methods * +_mysqlnd_result_unbuffered_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_result_unbuffered); } /* }}} */ -/* {{{ mysqlnd_result_unbuffered_set_methods */ -PHPAPI void -mysqlnd_result_unbuffered_set_methods(struct st_mysqlnd_result_unbuffered_methods * methods) +/* {{{ _mysqlnd_result_unbuffered_set_methods */ +static void +_mysqlnd_result_unbuffered_set_methods(struct st_mysqlnd_result_unbuffered_methods * methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_result_unbuffered) = *methods; } /* }}} */ -/* {{{ mysqlnd_result_buffered_get_methods */ -PHPAPI struct st_mysqlnd_result_buffered_methods * -mysqlnd_result_buffered_get_methods() +/* {{{ _mysqlnd_result_buffered_get_methods */ +static struct st_mysqlnd_result_buffered_methods * +_mysqlnd_result_buffered_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_result_buffered); } /* }}} */ -/* {{{ mysqlnd_result_buffered_set_methods */ -PHPAPI void -mysqlnd_result_buffered_set_methods(struct st_mysqlnd_result_buffered_methods * methods) +/* {{{ _mysqlnd_result_buffered_set_methods */ +static void +_mysqlnd_result_buffered_set_methods(struct st_mysqlnd_result_buffered_methods * methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_result_buffered) = *methods; } /* }}} */ -/* {{{ mysqlnd_stmt_get_methods */ -PHPAPI struct st_mysqlnd_stmt_methods * -mysqlnd_stmt_get_methods() +/* {{{ _mysqlnd_stmt_get_methods */ +static struct st_mysqlnd_stmt_methods * +_mysqlnd_stmt_get_methods() { return mysqlnd_stmt_methods; } /* }}} */ -/* {{{ mysqlnd_stmt_set_methods */ -PHPAPI void -mysqlnd_stmt_set_methods(struct st_mysqlnd_stmt_methods *methods) +/* {{{ _mysqlnd_stmt_set_methods */ +static void +_mysqlnd_stmt_set_methods(struct st_mysqlnd_stmt_methods *methods) { mysqlnd_stmt_methods = methods; } /* }}} */ -/* {{{ mysqlnd_protocol_payload_decoder_factory_get_methods */ -PHPAPI struct st_mysqlnd_protocol_payload_decoder_factory_methods * -mysqlnd_protocol_payload_decoder_factory_get_methods() +/* {{{ _mysqlnd_protocol_payload_decoder_factory_get_methods */ +static struct st_mysqlnd_protocol_payload_decoder_factory_methods * +_mysqlnd_protocol_payload_decoder_factory_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_protocol_payload_decoder_factory); } /* }}} */ -/* {{{ mysqlnd_protocol_payload_decoder_factory_set_methods */ -PHPAPI void -mysqlnd_protocol_payload_decoder_factory_set_methods(struct st_mysqlnd_protocol_payload_decoder_factory_methods * methods) +/* {{{ _mysqlnd_protocol_payload_decoder_factory_set_methods */ +static void +_mysqlnd_protocol_payload_decoder_factory_set_methods(struct st_mysqlnd_protocol_payload_decoder_factory_methods * methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_protocol_payload_decoder_factory) = *methods; } /* }}} */ -/* {{{ mysqlnd_net_get_methods */ -PHPAPI struct st_mysqlnd_net_methods * -mysqlnd_net_get_methods() +/* {{{ _mysqlnd_net_get_methods */ +static struct st_mysqlnd_net_methods * +_mysqlnd_net_get_methods() { return &MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_net); } /* }}} */ -/* {{{ mysqlnd_net_set_methods */ -PHPAPI void -mysqlnd_net_set_methods(struct st_mysqlnd_net_methods * methods) +/* {{{ _mysqlnd_net_set_methods */ +static void +_mysqlnd_net_set_methods(struct st_mysqlnd_net_methods * methods) { MYSQLND_CLASS_METHOD_TABLE_NAME(mysqlnd_net) = *methods; } /* }}} */ +struct st_mysqlnd_plugin_methods_xetters mysqlnd_plugin_methods_xetters = +{ + { + _mysqlnd_object_factory_get_methods, + _mysqlnd_object_factory_set_methods + }, + { + _mysqlnd_conn_get_methods, + _mysqlnd_conn_set_methods, + }, + { + _mysqlnd_conn_data_get_methods, + _mysqlnd_conn_data_set_methods, + }, + { + _mysqlnd_result_get_methods, + _mysqlnd_result_set_methods, + }, + { + _mysqlnd_result_unbuffered_get_methods, + _mysqlnd_result_unbuffered_set_methods, + }, + { + _mysqlnd_result_buffered_get_methods, + _mysqlnd_result_buffered_set_methods, + }, + { + _mysqlnd_stmt_get_methods, + _mysqlnd_stmt_set_methods, + }, + { + _mysqlnd_protocol_payload_decoder_factory_get_methods, + _mysqlnd_protocol_payload_decoder_factory_set_methods, + }, + { + _mysqlnd_net_get_methods, + _mysqlnd_net_set_methods + }, +}; + /* * Local variables: * tab-width: 4 diff --git a/ext/mysqlnd/mysqlnd_ext_plugin.h b/ext/mysqlnd/mysqlnd_ext_plugin.h index b140daa588..96549d4e98 100644 --- a/ext/mysqlnd/mysqlnd_ext_plugin.h +++ b/ext/mysqlnd/mysqlnd_ext_plugin.h @@ -22,17 +22,121 @@ #ifndef MYSQLND_EXT_PLUGIN_H #define MYSQLND_EXT_PLUGIN_H -PHPAPI void ** mysqlnd_plugin_get_plugin_connection_data(const MYSQLND * conn, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_connection_data_data(const MYSQLND_CONN_DATA * conn, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_result_data(const MYSQLND_RES * result, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_result_unbuffered_data(const MYSQLND_RES_UNBUFFERED * result, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_result_buffered_data_zval(const MYSQLND_RES_BUFFERED_ZVAL * result, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_result_buffered_data_c(const MYSQLND_RES_BUFFERED_C * result, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_stmt_data(const MYSQLND_STMT * stmt, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_protocol_data(const MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * factory, unsigned int plugin_id); -PHPAPI void ** mysqlnd_plugin_get_plugin_net_data(const MYSQLND_NET * net, unsigned int plugin_id); +struct st_mysqlnd_plugin__plugin_area_getters +{ + void ** (*get_connection_area)(const MYSQLND * conn, unsigned int plugin_id); + void ** (*get_connection_data_area)(const MYSQLND_CONN_DATA * conn, unsigned int plugin_id); + void ** (*get_result_area)(const MYSQLND_RES * result, unsigned int plugin_id); + void ** (*get_unbuffered_area)(const MYSQLND_RES_UNBUFFERED * result, unsigned int plugin_id); + void ** (*get_result_buffered_area)(const MYSQLND_RES_BUFFERED_ZVAL * result, unsigned int plugin_id); + void ** (*get_result_buffered_aread_c)(const MYSQLND_RES_BUFFERED_C * result, unsigned int plugin_id); + void ** (*get_stmt_area)(const MYSQLND_STMT * stmt, unsigned int plugin_id); + void ** (*get_protocol_decoder_area)(const MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * factory, unsigned int plugin_id); + void ** (*get_net_area)(const MYSQLND_NET * net, unsigned int plugin_id); +}; +extern struct st_mysqlnd_plugin__plugin_area_getters mysqlnd_plugin_area_getters; +#define mysqlnd_plugin_get_plugin_connection_data(c, p_id) mysqlnd_plugin_area_getters.get_connection_area((c), (p_id)) +#define mysqlnd_plugin_get_plugin_connection_data_data(c, p_id) mysqlnd_plugin_area_getters.get_connection_data_area((c), (p_id)) +#define mysqlnd_plugin_get_plugin_result_data(res, p_id) mysqlnd_plugin_area_getters.get_result_area((res), (p_id)) +#define mysqlnd_plugin_get_plugin_result_unbuffered_data(res, p_id) mysqlnd_plugin_area_getters.get_unbuffered_area((res), (p_id)) +#define mysqlnd_plugin_get_plugin_result_buffered_data_zval(res, p_id) mysqlnd_plugin_area_getters.get_result_buffered_area((res), (p_id)) +#define mysqlnd_plugin_get_plugin_result_buffered_data_c(res, p_id) mysqlnd_plugin_area_getters.get_result_buffered_aread_c((res), (p_id)) +#define mysqlnd_plugin_get_plugin_stmt_data(stmt, p_id) mysqlnd_plugin_area_getters.get_stmt_area((stmt), (p_id)) +#define mysqlnd_plugin_get_plugin_protocol_data(proto, p_id) mysqlnd_plugin_area_getters.get_protocol_decoder_area((proto), (p_id)) +#define mysqlnd_plugin_get_plugin_net_data(net, p_id) mysqlnd_plugin_area_getters.get_net_area((net), (p_id)) + + +struct st_mysqlnd_plugin_methods_xetters +{ + struct st_mnd_object_factory_xetters + { + struct st_mysqlnd_object_factory_methods * (*get)(); + void (*set)(struct st_mysqlnd_object_factory_methods * methods); + } object_factory; + + struct st_mnd_connection_xetters + { + struct st_mysqlnd_conn_methods * (*get)(); + void (*set)(struct st_mysqlnd_conn_methods * methods); + } connection; + + struct st_mnd_connection_data_xetters + { + struct st_mysqlnd_conn_data_methods * (*get)(); + void (*set)(struct st_mysqlnd_conn_data_methods * methods); + } connection_data; + + struct st_mnd_result_etters + { + struct st_mysqlnd_res_methods * (*get)(); + void (*set)(struct st_mysqlnd_res_methods * methods); + } result; + + struct st_mnd_unbuffered_result_xetters + { + struct st_mysqlnd_result_unbuffered_methods * (*get)(); + void (*set)(struct st_mysqlnd_result_unbuffered_methods * methods); + } unbuffered_result; + + struct st_mnd_buffered_result_xetters + { + struct st_mysqlnd_result_buffered_methods * (*get)(); + void (*set)(struct st_mysqlnd_result_buffered_methods * methods); + } buffered_result; + + struct st_mnd_stmt_xetters + { + struct st_mysqlnd_stmt_methods * (*get)(); + void (*set)(struct st_mysqlnd_stmt_methods * methods); + } statement; + + struct st_mnd_protocol_xetters + { + struct st_mysqlnd_protocol_payload_decoder_factory_methods * (*get)(); + void (*set)(struct st_mysqlnd_protocol_payload_decoder_factory_methods * methods); + } protocol; + + struct st_mnd_io_xetters + { + struct st_mysqlnd_net_methods * (*get)(); + void (*set)(struct st_mysqlnd_net_methods * methods); + } io; +}; + +extern struct st_mysqlnd_plugin_methods_xetters mysqlnd_plugin_methods_xetters; + + +#define mysqlnd_object_factory_get_methods() mysqlnd_plugin_methods_xetters.object_factory.get() +#define mysqlnd_object_factory_set_methods(m) mysqlnd_plugin_methods_xetters.object_factory.set((m)) + +#define mysqlnd_conn_get_methods() mysqlnd_plugin_methods_xetters.connection.get() +#define mysqlnd_conn_set_methods(m) mysqlnd_plugin_methods_xetters.connection.set((m)) + +#define mysqlnd_conn_data_get_methods() mysqlnd_plugin_methods_xetters.connection_data.get() +#define mysqlnd_conn_data_set_methods(m) mysqlnd_plugin_methods_xetters.connection_data.set((m)) + +#define mysqlnd_result_get_methods() mysqlnd_plugin_methods_xetters.result.get() +#define mysqlnd_result_set_methods(m) mysqlnd_plugin_methods_xetters.result.set((m)) + +#define mysqlnd_result_unbuffered_get_methods() mysqlnd_plugin_methods_xetters.unbuffered_result.get() +#define mysqlnd_result_unbuffered_set_methods(m) mysqlnd_plugin_methods_xetters.unbuffered_result.set((m)) + +#define mysqlnd_result_buffered_get_methods() mysqlnd_plugin_methods_xetters.buffered_result.get() +#define mysqlnd_result_buffered_set_methods(m) mysqlnd_plugin_methods_xetters.buffered_result.set((m)) + +#define mysqlnd_stmt_get_methods() mysqlnd_plugin_methods_xetters.statement.get() +#define mysqlnd_stmt_set_methods(m) mysqlnd_plugin_methods_xetters.statement.set((m)) + +#define mysqlnd_protocol_get_methods() mysqlnd_plugin_methods_xetters.protocol.get() +#define mysqlnd_protocol_set_methods(m) mysqlnd_plugin_methods_xetters.protocol.set((m)) + +#define mysqlnd_net_get_methods() mysqlnd_plugin_methods_xetters.io.get() +#define mysqlnd_net_set_methods(m) mysqlnd_plugin_methods_xetters.io.set((m)) + + +/* PHPAPI struct st_mysqlnd_object_factory_methods * mysqlnd_object_factory_get_methods(); PHPAPI void mysqlnd_object_factory_set_methods(struct st_mysqlnd_object_factory_methods * methods); @@ -54,12 +158,12 @@ PHPAPI void mysqlnd_result_buffered_set_methods(struct st_mysqlnd_result_buffere PHPAPI struct st_mysqlnd_stmt_methods * mysqlnd_stmt_get_methods(); PHPAPI void mysqlnd_stmt_set_methods(struct st_mysqlnd_stmt_methods * methods); -PHPAPI struct st_mysqlnd_protocol_methods * mysqlnd_protocol_get_methods(); -PHPAPI void mysqlnd_protocol_set_methods(struct st_mysqlnd_protocol_methods * methods); +PHPAPI struct st_mysqlnd_protocol_payload_decoder_factory_methods * mysqlnd_protocol_get_methods(); +PHPAPI void mysqlnd_protocol_set_methods(struct st_mysqlnd_protocol_payload_decoder_factory_methods * methods); PHPAPI struct st_mysqlnd_net_methods * mysqlnd_net_get_methods(); PHPAPI void mysqlnd_net_set_methods(struct st_mysqlnd_net_methods * methods); - +*/ #endif /* MYSQLND_EXT_PLUGIN_H */