UtilDelete.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 UTIL_DELETE_HPP
  14. #define UTIL_DELETE_HPP
  15. #include "SignalData.hpp"
  16. #include <SimpleProperties.hpp>
  17. /**
  18.  * UTIL_DELETE_REQ, UTIL_DELETE_CONF, UTIL_DELETE_REF
  19.  */
  20. /**
  21.  * @class UtilDeleteReq
  22.  * @brief Delete transaction in Util block
  23.  *
  24.  * Data format:
  25.  * - UTIL_DELETE_REQ <prepareId> <ListOfAttributeHeaderValuePairs>
  26.  */
  27. class UtilDeleteReq {
  28.   /** Sender(s) / Receiver(s) */
  29.   friend class DbUtil;
  30.   /** For printing */
  31.   friend bool printUTIL_DELETE_REQ(FILE * output, const Uint32 * theData, 
  32.    Uint32 len, Uint16 receiverBlockNo);
  33. public:
  34.   STATIC_CONST( DataLength = 22 );
  35.   STATIC_CONST( HeaderLength = 3 );
  36. private:  
  37.   Uint32 senderData;
  38.   Uint32 prepareId;     // Which prepared transaction to execute
  39.   Uint32 totalDataLen;  // Total length of attrData (including AttributeHeaders
  40.                         // and possibly spanning over multiple signals)
  41.   /**
  42.    * Length in this = signal->length() - 3
  43.    * Sender block ref = signal->senderBlockRef()
  44.    */
  45.   
  46.   Uint32 attrData[DataLength];
  47. };
  48. /**
  49.  * @class UtilDeleteConf
  50.  *
  51.  * Data format:
  52.  * - UTIL_PREPARE_CONF <UtilPrepareId> 
  53.  */
  54. class UtilDeleteConf {
  55.   /**
  56.    * Sender(s) / Receiver(s)
  57.    */
  58.   friend class DbUtil;
  59.   /**
  60.    * For printing
  61.    */
  62.   friend bool printUTIL_DELETE_CONF(FILE * output, 
  63.      const Uint32 * theData, 
  64.      Uint32 len, 
  65.      Uint16 receiverBlockNo);
  66.   STATIC_CONST( SignalLength = 1 );
  67. private:
  68.   Uint32 senderData;   ///< The client data provided by the client sending
  69.                        ///< UTIL_DELETE_REQ
  70. };
  71. /**
  72.  * @class UtilDeleteRef
  73.  *
  74.  * Data format:
  75.  * - UTIL_PREPARE_REF 
  76.  */
  77. class UtilDeleteRef {
  78.   /**
  79.    * Sender(s) / Receiver(s)
  80.    */
  81.   friend class DbUtil;
  82.   /**
  83.    * For printing
  84.    */
  85.   friend bool printUTIL_DELETE_REF(FILE * output, 
  86.     const Uint32 * theData, 
  87.     Uint32 len, 
  88.     Uint16 receiverBlockNo);
  89.   STATIC_CONST( SignalLength = 2 );
  90. private:
  91.   Uint32 senderData;
  92.   Uint32 errorCode;   ///< See UtilExecuteRef::errorCode
  93.   Uint32 TCErrorCode;
  94. };
  95. #endif