TupFrag.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef TUP_FRAG_HPP
  14. #define TUP_FRAG_HPP
  15. #include "SignalData.hpp"
  16. /*
  17.  * Add fragment and add attribute signals between LQH and TUP,TUX.
  18.  * NOTE: return signals from TUP,TUX to LQH must have same format.
  19.  */
  20. // TUP: add fragment
  21. class TupFragReq {
  22.   friend class Dblqh;
  23.   friend class Dbtup;
  24. public:
  25.   STATIC_CONST( SignalLength = 14 );
  26. private:
  27.   Uint32 userPtr;
  28.   Uint32 userRef;
  29.   Uint32 reqInfo;
  30.   Uint32 tableId;
  31.   Uint32 noOfAttr;
  32.   Uint32 fragId;
  33.   Uint32 todo[8];
  34. };
  35. class TupFragConf {
  36.   friend class Dblqh;
  37.   friend class Dbtup;
  38. public:
  39.   STATIC_CONST( SignalLength = 4 );
  40. private:
  41.   Uint32 userPtr;
  42.   Uint32 tupConnectPtr;
  43.   Uint32 fragPtr;
  44.   Uint32 fragId;
  45. };
  46. class TupFragRef {
  47.   friend class Dblqh;
  48.   friend class Dbtup;
  49. public:
  50.   STATIC_CONST( SignalLength = 2 );
  51. private:
  52.   Uint32 userPtr;
  53.   Uint32 errorCode;
  54. };
  55. // TUX: add fragment
  56. class TuxFragReq {
  57.   friend class Dblqh;
  58.   friend class Dbtux;
  59. public:
  60.   STATIC_CONST( SignalLength = 14 );
  61. private:
  62.   Uint32 userPtr;
  63.   Uint32 userRef;
  64.   Uint32 reqInfo;
  65.   Uint32 tableId;
  66.   Uint32 noOfAttr;
  67.   Uint32 fragId;
  68.   Uint32 fragOff;
  69.   Uint32 tableType;
  70.   Uint32 primaryTableId;
  71.   Uint32 tupIndexFragPtrI;
  72.   Uint32 tupTableFragPtrI[2];
  73.   Uint32 accTableFragPtrI[2];
  74. };
  75. class TuxFragConf {
  76.   friend class Dblqh;
  77.   friend class Dbtux;
  78. public:
  79.   STATIC_CONST( SignalLength = 4 );
  80. private:
  81.   Uint32 userPtr;
  82.   Uint32 tuxConnectPtr;
  83.   Uint32 fragPtr;
  84.   Uint32 fragId;
  85. };
  86. class TuxFragRef {
  87.   friend class Dblqh;
  88.   friend class Dbtux;
  89. public:
  90.   STATIC_CONST( SignalLength = 2 );
  91.   enum ErrorCode {
  92.     NoError = 0,
  93.     InvalidRequest = 800,
  94.     NoFreeFragment = 604,
  95.     NoFreeAttributes = 827
  96.   };
  97. private:
  98.   Uint32 userPtr;
  99.   Uint32 errorCode;
  100. };
  101. // TUP: add attribute
  102. class TupAddAttrReq {
  103.   friend class Dblqh;
  104.   friend class Dbtux;
  105. public:
  106.   STATIC_CONST( SignalLength = 5 );
  107. private:
  108.   Uint32 tupConnectPtr;
  109.   Uint32 notused1;
  110.   Uint32 attrId;
  111.   Uint32 attrDescriptor;
  112.   Uint32 extTypeInfo;
  113. };
  114. class TupAddAttrConf {
  115.   friend class Dblqh;
  116.   friend class Dbtup;
  117. public:
  118.   STATIC_CONST( SignalLength = 2 );
  119. private:
  120.   Uint32 userPtr;
  121.   Uint32 lastAttr; // bool: got last attr and closed frag op
  122. };
  123. class TupAddAttrRef {
  124.   friend class Dblqh;
  125.   friend class Dbtup;
  126. public:
  127.   STATIC_CONST( SignalLength = 2 );
  128.   enum ErrorCode {
  129.     NoError = 0,
  130.     InvalidCharset = 743
  131.   };
  132. private:
  133.   Uint32 userPtr;
  134.   Uint32 errorCode;
  135. };
  136. // TUX: add attribute
  137. class TuxAddAttrReq {
  138.   friend class Dblqh;
  139.   friend class Dbtux;
  140. public:
  141.   STATIC_CONST( SignalLength = 6 );
  142. private:
  143.   Uint32 tuxConnectPtr;
  144.   Uint32 notused1;
  145.   Uint32 attrId;
  146.   Uint32 attrDescriptor;
  147.   Uint32 extTypeInfo;
  148.   Uint32 primaryAttrId;
  149. };
  150. class TuxAddAttrConf {
  151.   friend class Dblqh;
  152.   friend class Dbtux;
  153. public:
  154.   STATIC_CONST( SignalLength = 2 );
  155. private:
  156.   Uint32 userPtr;
  157.   Uint32 lastAttr; // bool: got last attr and closed frag op
  158. };
  159. class TuxAddAttrRef {
  160.   friend class Dblqh;
  161.   friend class Dbtux;
  162. public:
  163.   STATIC_CONST( SignalLength = 2 );
  164.   enum ErrorCode {
  165.     NoError = 0,
  166.     InvalidAttributeType = 742,
  167.     InvalidCharset = 743,
  168.     InvalidNodeSize = 832
  169.   };
  170. private:
  171.   Uint32 userPtr;
  172.   Uint32 errorCode;
  173. };
  174. #endif