92
95
return new (nothrow) ClientDrizzleProtocol(new_fd, using_mysql41_protocol);
98
drizzled::atomic<uint64_t> ClientDrizzleProtocol::connectionCount;
99
drizzled::atomic<uint64_t> ClientDrizzleProtocol::failedConnections;
100
drizzled::atomic<uint64_t> ClientDrizzleProtocol::connected;
95
102
ClientDrizzleProtocol::ClientDrizzleProtocol(int fd, bool using_mysql41_protocol_arg):
96
103
using_mysql41_protocol(using_mysql41_protocol_arg)
158
166
bool connection_is_valid;
168
connectionCount.increment();
169
connected.increment();
160
171
/* Use "connect_timeout" value during connection phase */
161
172
drizzleclient_net_set_read_timeout(&net, connect_timeout);
162
173
drizzleclient_net_set_write_timeout(&net, connect_timeout);
966
static int drizzle_protocol_connection_count_func(drizzle_show_var *var, char *buff)
968
var->type= SHOW_LONGLONG;
970
*((uint64_t *)buff)= ClientDrizzleProtocol::connectionCount;
974
static int drizzle_protocol_connected_count_func(drizzle_show_var *var, char *buff)
976
var->type= SHOW_LONGLONG;
978
*((uint64_t *)buff)= ClientDrizzleProtocol::connected;
982
static int drizzle_protocol_failed_count_func(drizzle_show_var *var, char *buff)
984
var->type= SHOW_LONGLONG;
986
*((uint64_t *)buff)= ClientDrizzleProtocol::failedConnections;
990
static st_show_var_func_container drizzle_protocol_connection_count=
991
{ &drizzle_protocol_connection_count_func };
993
static st_show_var_func_container drizzle_protocol_connected_count=
994
{ &drizzle_protocol_connected_count_func };
996
static st_show_var_func_container drizzle_protocol_failed_count=
997
{ &drizzle_protocol_failed_count_func };
999
static drizzle_show_var drizzle_protocol_status_variables[]= {
1001
(char*) &drizzle_protocol_connection_count, SHOW_FUNC},
1003
(char*) &drizzle_protocol_connected_count, SHOW_FUNC},
1004
{"Failed_connections",
1005
(char*) &drizzle_protocol_failed_count, SHOW_FUNC},
1006
{NULL, NULL, SHOW_LONGLONG}
1009
DrizzleProtocolStatus::Generator::Generator(drizzled::Field **fields) :
1010
plugin::TableFunction::Generator(fields)
1012
status_var_ptr= drizzle_protocol_status_variables;
1015
bool DrizzleProtocolStatus::Generator::populate()
1017
MY_ALIGNED_BYTE_ARRAY(buff_data, SHOW_VAR_FUNC_BUFF_SIZE, int64_t);
1018
char * const buff= (char *) &buff_data;
1019
drizzle_show_var tmp;
1021
if (status_var_ptr->name)
1023
std::ostringstream oss;
1024
string return_value;
1028
push(status_var_ptr->name);
1030
if (status_var_ptr->type == SHOW_FUNC)
1032
((mysql_show_var_func)((st_show_var_func_container *)status_var_ptr->value)->func)(&tmp, buff);
1038
value= status_var_ptr->value;
1039
type= status_var_ptr->type;
1045
oss << *(uint64_t*) value;
1046
return_value= oss.str();
1051
if (return_value.length())
950
1063
} /* namespace drizzle_protocol */
952
1065
DRIZZLE_PLUGIN(drizzle_protocol::init, drizzle_protocol::sys_variables, drizzle_protocol::init_options);