// // Created by zzy on 2022/7/5. // #pragma once #include #include #include #include "global_defines.h" #ifndef MYSQL8 #include "sql_plugin.h" #include #endif #include #include #include #include "sql/log.h" #define POLARX_RPC_PLUGIN_NAME "polarx_rpc" namespace polarx_rpc { class Cserver; class CrequestCache; } struct polarx_rpc_info_t final { st_mysql_daemon daemon{MYSQL_DAEMON_INTERFACE_VERSION}; /// server std::mutex mutex; MYSQL_PLUGIN plugin_info = nullptr; std::unique_ptr server; /// cache std::unique_ptr cache; /// status std::atomic inited = {false}; std::atomic tcp_connections = {0}; std::atomic tcp_closing = {0}; //// session count use polarx_rpc::g_session_count; std::atomic total_sessions = {0}; /// include internal session std::atomic threads = {0}; /// working threads(without watchdog) std::atomic sql_hit = {0}; std::atomic sql_miss = {0}; std::atomic sql_evict = {0}; std::atomic plan_hit = {0}; std::atomic plan_miss = {0}; std::atomic plan_evict = {0}; }; extern polarx_rpc_info_t plugin_info; #define POLARX_RPC_DBG 0 #if POLARX_RPC_DBG # define DBG_LOG(_x_) sql_print_information _x_ #else # define DBG_LOG(_x_) #endif #define POLARX_RPC_PKT_DBG 0