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

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 WAIT_GCP_HPP
  14. #define WAIT_GCP_HPP
  15. /**
  16.  * This signal is sent by anyone to local DIH
  17.  *
  18.  * If local DIH is not master, it forwards it to master DIH
  19.  *   and start acting as a proxy
  20.  *
  21.  */
  22. class WaitGCPReq {
  23.   
  24.   /**
  25.    * Sender(s) / Reciver(s)
  26.    */
  27.   friend class Dbdih;
  28.   
  29.   /**
  30.    * Sender
  31.    */
  32.   friend class Ndbcntr;
  33.   friend class Dbdict;
  34.   friend class Backup;
  35.   //friend class Grep::PSCoord;
  36. public:
  37.   STATIC_CONST( SignalLength = 3 );
  38. public:
  39.   enum RequestType {
  40.     Complete = 1,           ///< Wait for a GCP to complete
  41.     CompleteForceStart = 2, ///< Wait for a GCP to complete start one if needed
  42.     CompleteIfRunning = 3,  ///< Wait for ongoing GCP
  43.     CurrentGCI        = 8   ///< Immediately return current GCI
  44.   };
  45.   Uint32 senderRef;
  46.   Uint32 senderData;
  47.   Uint32 requestType;
  48. };
  49. class WaitGCPConf {
  50.   /**
  51.    * Sender(s) / Reciver(s)
  52.    */
  53.   friend class Dbdih;
  54.   
  55.   /**
  56.    * Reciver(s)
  57.    */
  58.   friend class Ndbcntr;
  59.   friend class Dbdict;
  60.   friend class Backup;
  61.   //friend class Grep::PSCoord;
  62. public:
  63.   STATIC_CONST( SignalLength = 2 );
  64.   
  65. public:
  66.   Uint32 senderData;
  67.   Uint32 gcp;
  68. };
  69. class WaitGCPRef {
  70.   
  71.   /**
  72.    * Sender(s) / Reciver(s)
  73.    */
  74.   friend class Dbdih;
  75.   
  76.   /**
  77.    * Reciver(s)
  78.    */
  79.   friend class Ndbcntr;
  80.   friend class Dbdict;
  81.   friend class Backup;
  82.   friend class Grep;
  83. public:
  84.   STATIC_CONST( SignalLength = 2 );
  85.   enum ErrorCode {
  86.     StopOK = 0,
  87.     NF_CausedAbortOfProcedure = 1,
  88.     NoWaitGCPRecords = 2
  89.   };
  90.   
  91. private:
  92.   Uint32 errorCode;
  93.   Uint32 senderData;
  94. };
  95. #endif