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

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 LCP_SIGNAL_DATA_HPP
  14. #define LCP_SIGNAL_DATA_HPP
  15. #include "SignalData.hpp"
  16. #include <NodeBitmask.hpp>
  17. class StartLcpReq {
  18.   /**
  19.    * Sender(s)
  20.    */
  21.   friend class Dbdih;
  22.   
  23.   /**
  24.    * Sender(s) / Receiver(s)
  25.    */
  26.   
  27.   /**
  28.    * Receiver(s)
  29.    */
  30.   friend class Dblqh;
  31.   friend bool printSTART_LCP_REQ(FILE *, const Uint32 *, Uint32, Uint16);  
  32. public:
  33.   STATIC_CONST( SignalLength = 2 + 2 * NdbNodeBitmask::Size );
  34. private:
  35.   Uint32 senderRef;
  36.   Uint32 lcpId;
  37.   
  38.   NdbNodeBitmask participatingDIH;
  39.   NdbNodeBitmask participatingLQH;
  40. };
  41. class StartLcpConf {
  42.   /**
  43.    * Sender(s)
  44.    */
  45.   friend class Dblqh;
  46.   
  47.   /**
  48.    * Sender(s) / Receiver(s)
  49.    */
  50.   
  51.   /**
  52.    * Receiver(s)
  53.    */
  54.   friend class Dbdih;
  55.   friend bool printSTART_LCP_CONF(FILE *, const Uint32 *, Uint32, Uint16);  
  56. public:
  57.   
  58.   STATIC_CONST( SignalLength = 2 );
  59. private:
  60.   Uint32 senderRef;
  61.   Uint32 lcpId;
  62. };
  63. /**
  64.  * This signals is sent by Dbdih to Dblqh
  65.  * to order checkpointing of a certain
  66.  * fragment.
  67.  */
  68. class LcpFragOrd {
  69.   /**
  70.    * Sender(s)
  71.    */
  72.   friend class Dbdih;
  73.   
  74.   /**
  75.    * Sender(s) / Receiver(s)
  76.    */
  77.   
  78.   /**
  79.    * Receiver(s)
  80.    */
  81.   friend class Dblqh;
  82.   friend bool printLCP_FRAG_ORD(FILE *, const Uint32 *, Uint32, Uint16);  
  83. public:
  84.   STATIC_CONST( SignalLength = 6 );
  85. private:
  86.   
  87.   Uint32 tableId;
  88.   Uint32 fragmentId;
  89.   Uint32 lcpNo;
  90.   Uint32 lcpId;
  91.   Uint32 lastFragmentFlag;
  92.   Uint32 keepGci;
  93. };
  94. class LcpFragRep {
  95.   /**
  96.    * Sender(s) and receiver(s)
  97.    */
  98.   friend class Dbdih;
  99.   /**
  100.    * Sender(s)
  101.    */
  102.   friend class Dblqh;
  103.   friend bool printLCP_FRAG_REP(FILE *, const Uint32 *, Uint32, Uint16);  
  104. public:
  105.   STATIC_CONST( SignalLength = 7 );
  106. private:
  107.   Uint32 nodeId;
  108.   Uint32 lcpId;
  109.   Uint32 lcpNo;
  110.   Uint32 tableId;
  111.   Uint32 fragId;
  112.   Uint32 maxGciCompleted;
  113.   Uint32 maxGciStarted;
  114. };
  115. class LcpCompleteRep {
  116.   /**
  117.    * Sender(s) and receiver(s)
  118.    */
  119.   friend class Dbdih;
  120.   
  121.   /**
  122.    * Sender(s)
  123.    */
  124.   friend class Dblqh;
  125.   friend bool printLCP_COMPLETE_REP(FILE *, const Uint32 *, Uint32, Uint16);  
  126. public:
  127.   STATIC_CONST( SignalLength = 3 );
  128.   
  129. private:
  130.   Uint32 nodeId;
  131.   Uint32 blockNo;
  132.   Uint32 lcpId;
  133. };
  134. #endif