1 /* Copyright (C) MariaDB Corporation Ab 2 3 This program is free software; you can redistribute it and/or modify 4 it under the terms of the GNU General Public License as published by 5 the Free Software Foundation; version 2 of the License. 6 7 This program is distributed in the hope that it will be useful, 8 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 GNU General Public License for more details. 11 12 You should have received a copy of the GNU General Public License 13 along with this program; if not, write to the Free Software 14 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ 15 16 /** @file user_connect.h 17 18 @brief 19 Declaration of the user_connect class. 20 21 @note 22 Author Olivier Bertrand 23 24 @see 25 /sql/handler.h and /storage/connect/user_connect.cc 26 */ 27 28 #ifdef USE_PRAGMA_INTERFACE 29 #pragma interface /* gcc class implementation */ 30 #endif 31 32 /*****************************************************************************/ 33 /* This is the global structure having all CONNECT information. */ 34 /*****************************************************************************/ 35 //typedef struct _global *PGLOBAL; 36 typedef class user_connect *PCONNECT; 37 typedef class ha_connect *PHC; 38 static int connect_done_func(void *); 39 40 /*****************************************************************************/ 41 /* The CONNECT users. There should be one by connected users. */ 42 /*****************************************************************************/ 43 class user_connect 44 { 45 friend class ha_connect; 46 friend int connect_done_func(void *); 47 public: 48 // Constructor 49 user_connect(THD *thd); 50 51 // Destructor 52 virtual ~user_connect(); 53 54 // Implementation 55 bool user_init(); 56 void SetHandler(ha_connect *hc); 57 bool CheckCleanup(bool force = false); CheckQueryID(void)58 bool CheckQueryID(void) {return thdp->query_id > last_query_id;} CheckQuery(query_id_t vid)59 bool CheckQuery(query_id_t vid) {return last_query_id > vid;} 60 61 // Members 62 THD *thdp; // To the user thread 63 static PCONNECT to_users; // To the chain of users 64 PCONNECT next; // Next user in chain 65 PCONNECT previous; // Previous user in chain 66 PGLOBAL g; // The common handle to CONNECT 67 query_id_t last_query_id; // the latest user query id 68 int count; // if used by several handlers 69 // Statistics 70 ulong nrd, fnd, nfd; 71 ulonglong tb1; 72 }; // end of user_connect class definition 73 74