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

MySQL数据库

开发平台:

Visual C++

  1. #ifndef CNTR_START_HPP
  2. #define CNTR_START_HPP
  3. #include <NodeBitmask.hpp>
  4. /**
  5.  * 
  6.  */
  7. class CntrStartReq {
  8.   /**
  9.    * Sender(s) / Reciver(s)
  10.    */
  11.   friend class Ndbcntr;
  12.   
  13.   friend bool printCNTR_START_REQ(FILE*, const Uint32 *, Uint32, Uint16);
  14.   
  15. public:
  16.   STATIC_CONST( SignalLength = 3 );
  17. private:
  18.   
  19.   Uint32 nodeId;
  20.   Uint32 startType;
  21.   Uint32 lastGci;
  22. };
  23. class CntrStartRef {
  24.   /**
  25.    * Sender(s) / Reciver(s)
  26.    */
  27.   friend class Ndbcntr;
  28.   
  29.   friend bool printCNTR_START_REF(FILE*, const Uint32 *, Uint32, Uint16);
  30. public:
  31.   STATIC_CONST( SignalLength = 2 );
  32.   enum ErrorCode {
  33.     OK = 0,
  34.     NotMaster = 1,
  35.     StopInProgress = 2
  36.   };
  37. private:
  38.   
  39.   Uint32 errorCode;
  40.   Uint32 masterNodeId;
  41. };
  42. class CntrStartConf {
  43.   /**
  44.    * Sender(s) / Reciver(s)
  45.    */
  46.   friend class Ndbcntr;
  47.   friend struct UpgradeStartup;
  48.   
  49.   friend bool printCNTR_START_CONF(FILE*, const Uint32 *, Uint32, Uint16);
  50. public:
  51.   STATIC_CONST( SignalLength = 4 + 2 * NdbNodeBitmask::Size );
  52.   
  53. private:
  54.   
  55.   Uint32 startType;
  56.   Uint32 startGci;
  57.   Uint32 masterNodeId;
  58.   Uint32 noStartNodes;
  59.   Uint32 startedNodes[NdbNodeBitmask::Size];
  60.   Uint32 startingNodes[NdbNodeBitmask::Size];
  61. };
  62. #endif