UtilSequence.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 UTIL_SEQUENCE_HPP
  14. #define UTIL_SEQUENCE_HPP
  15. #include "SignalData.hpp"
  16. class UtilSequenceReq {
  17.   
  18.   /**
  19.    * Receiver
  20.    */
  21.   friend class DbUtil;
  22.   
  23.   /**
  24.    * Sender
  25.    */
  26.   friend class Backup;
  27.   friend class Suma;
  28.   friend bool printUTIL_SEQUENCE_REQ(FILE *, const Uint32 *, Uint32, Uint16);
  29. public:
  30.   STATIC_CONST( SignalLength = 3 );
  31.   
  32.   enum RequestType {
  33.     NextVal = 1, // Return uniq value
  34.     CurrVal = 2, // Read
  35.     Create  = 3  // Create a sequence
  36.   };
  37. private:
  38.   Uint32 senderData;  
  39.   Uint32 sequenceId;  // Number of sequence variable
  40.   Uint32 requestType;
  41. };
  42. class UtilSequenceConf {
  43.   
  44.   /**
  45.    * Receiver
  46.    */
  47.   friend class Backup;
  48.   friend class Suma;  
  49.   /**
  50.    * Sender
  51.    */
  52.   friend class DbUtil;
  53.   friend bool printUTIL_SEQUENCE_CONF(FILE *, const Uint32 *, Uint32, Uint16);
  54. public:
  55.   STATIC_CONST( SignalLength = 5 );
  56.   
  57. private:
  58.   Uint32 senderData;
  59.   Uint32 sequenceId;
  60.   Uint32 requestType;
  61.   Uint32 sequenceValue[2];
  62. };
  63. class UtilSequenceRef {
  64.   
  65.   /**
  66.    * Reciver
  67.    */
  68.   friend class Backup;
  69.   friend class Suma;
  70.   /**
  71.    * Sender
  72.    */
  73.   friend class DbUtil;
  74.   
  75.   friend bool printUTIL_SEQUENCE_REF(FILE *, const Uint32 *, Uint32, Uint16);
  76. public:
  77.   STATIC_CONST( SignalLength = 5 );
  78.   
  79.   enum ErrorCode {
  80.     NoSuchSequence = 1,
  81.     TCError = 2
  82.   };
  83. private:
  84.   Uint32 senderData;
  85.   Uint32 sequenceId;
  86.   Uint32 requestType;
  87.   Uint32 errorCode;
  88.   Uint32 TCErrorCode;
  89. };
  90. #endif