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

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 DROP_TRIG_HPP
  14. #define DROP_TRIG_HPP
  15. #include "SignalData.hpp"
  16. #include <NodeBitmask.hpp>
  17. #include <trigger_definitions.h>
  18. /**
  19.  * DropTrigReq.
  20.  */
  21. class DropTrigReq {
  22.   friend bool printDROP_TRIG_REQ(FILE*, const Uint32*, Uint32, Uint16);
  23. public:
  24.   enum RequestType {
  25.     RT_UNDEFINED = 0,
  26.     RT_USER = 1,
  27.     RT_ALTER_INDEX = 2,
  28.     RT_BUILD_INDEX = 3,
  29.     RT_DICT_PREPARE = 1 << 4,
  30.     RT_DICT_COMMIT = 0xC << 4,
  31.     RT_DICT_ABORT = 0xF << 4,
  32.     RT_TC = 5 << 8,
  33.     RT_LQH = 6 << 8
  34.   };
  35.   STATIC_CONST( SignalLength = 7 );
  36.   SECTION( TRIGGER_NAME_SECTION = 0 ); // optional
  37.   enum KeyValues {
  38.     TriggerNameKey = 0xa1
  39.   };
  40. private:
  41.   Uint32 m_userRef;
  42.   Uint32 m_connectionPtr;
  43.   Uint32 m_requestInfo;
  44.   Uint32 m_tableId;
  45.   Uint32 m_indexId;             // set by DICT if index trigger
  46.   Uint32 m_triggerId;           // set by DICT based on name
  47.   Uint32 m_triggerInfo;         // only for TUP
  48.   // extra
  49.   Uint32 m_opKey;
  50. public:
  51.   Uint32 getUserRef() const {
  52.     return m_userRef;
  53.   }
  54.   void setUserRef(Uint32 val) {
  55.     m_userRef = val;
  56.   }
  57.   Uint32 getConnectionPtr() const {
  58.     return m_connectionPtr;
  59.   }
  60.   void setConnectionPtr(Uint32 val) {
  61.     m_connectionPtr = val;
  62.   }
  63.   DropTrigReq::RequestType getRequestType() const {
  64.     const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16);
  65.     return (DropTrigReq::RequestType)val;
  66.   }
  67.   void setRequestType(DropTrigReq::RequestType val) {
  68.     m_requestInfo = (Uint32)val;
  69.   }
  70.   Uint32 getRequestFlag() const {
  71.     return BitmaskImpl::getField(1, &m_requestInfo, 16, 16);
  72.   };
  73.   void addRequestFlag(Uint32 val) {
  74.     val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16);
  75.     BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val);
  76.   };
  77.   Uint32 getTableId() const {
  78.     return m_tableId;
  79.   }
  80.   void setTableId(Uint32 val) {
  81.     m_tableId = val;
  82.   }
  83.   Uint32 getIndexId() const {
  84.     return m_indexId;
  85.   }
  86.   void setIndexId(Uint32 val) {
  87.     m_indexId = val;
  88.   }
  89.   Uint32 getTriggerId() const {
  90.     return m_triggerId;
  91.   }
  92.   void setTriggerId(Uint32 val) {
  93.     m_triggerId = val;
  94.   }
  95.   Uint32 getTriggerInfo() const {
  96.     return m_triggerInfo;
  97.   }
  98.   void setTriggerInfo(Uint32 val) {
  99.     m_triggerInfo = val;
  100.   }
  101.   TriggerType::Value getTriggerType() const {
  102.     const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 0, 8);
  103.     return (TriggerType::Value)val;
  104.   }
  105.   void setTriggerType(TriggerType::Value val) {
  106.     BitmaskImpl::setField(1, &m_triggerInfo, 0, 8, (Uint32)val);
  107.   }
  108.   TriggerActionTime::Value getTriggerActionTime() const {
  109.     const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 8, 8);
  110.     return (TriggerActionTime::Value)val;
  111.   }
  112.   void setTriggerActionTime(TriggerActionTime::Value val) {
  113.     BitmaskImpl::setField(1, &m_triggerInfo, 8, 8, (Uint32)val);
  114.   }
  115.   TriggerEvent::Value getTriggerEvent() const {
  116.     const Uint32 val = BitmaskImpl::getField(1, &m_triggerInfo, 16, 8);
  117.     return (TriggerEvent::Value)val;
  118.   }
  119.   void setTriggerEvent(TriggerEvent::Value val) {
  120.     BitmaskImpl::setField(1, &m_triggerInfo, 16, 8, (Uint32)val);
  121.   }
  122.   bool getMonitorReplicas() const {
  123.     return BitmaskImpl::getField(1, &m_triggerInfo, 24, 1);
  124.   }
  125.   void setMonitorReplicas(bool val) {
  126.     BitmaskImpl::setField(1, &m_triggerInfo, 24, 1, val);
  127.   }
  128.   bool getMonitorAllAttributes() const {
  129.     return BitmaskImpl::getField(1, &m_triggerInfo, 25, 1);
  130.   }
  131.   void setMonitorAllAttributes(bool val) {
  132.     BitmaskImpl::setField(1, &m_triggerInfo, 25, 1, val);
  133.   }
  134.   Uint32 getOpKey() const {
  135.     return m_opKey;
  136.   }
  137.   void setOpKey(Uint32 val) {
  138.     m_opKey = val;
  139.   }
  140. };
  141. /**
  142.  * DropTrigConf.
  143.  */
  144. class DropTrigConf {
  145.   friend bool printDROP_TRIG_CONF(FILE*, const Uint32*, Uint32, Uint16);
  146. public:
  147.   STATIC_CONST( InternalLength = 3 );
  148.   STATIC_CONST( SignalLength = 6 );
  149. private:
  150.   Uint32 m_userRef;
  151.   Uint32 m_connectionPtr;
  152.   Uint32 m_requestInfo;
  153.   Uint32 m_tableId;
  154.   Uint32 m_indexId;
  155.   Uint32 m_triggerId;
  156.   // Public methods
  157. public:
  158.   Uint32 getUserRef() const {
  159.     return m_userRef;
  160.   }
  161.   void setUserRef(Uint32 val) {
  162.     m_userRef = val;
  163.   }
  164.   Uint32 getConnectionPtr() const {
  165.     return m_connectionPtr;
  166.   }
  167.   void setConnectionPtr(Uint32 val) {
  168.     m_connectionPtr = val;
  169.   }
  170.   DropTrigReq::RequestType getRequestType() const {
  171.     return (DropTrigReq::RequestType)m_requestInfo;
  172.   }
  173.   void setRequestType(DropTrigReq::RequestType val) {
  174.     m_requestInfo = (Uint32)val;
  175.   }
  176.   Uint32 getTableId() const {
  177.     return m_tableId;
  178.   }
  179.   void setTableId(Uint32 val) {
  180.     m_tableId = val;
  181.   }
  182.   Uint32 getIndexId() const {
  183.     return m_indexId;
  184.   }
  185.   void setIndexId(Uint32 val) {
  186.     m_indexId = val;
  187.   }
  188.   Uint32 getTriggerId() const {
  189.     return m_triggerId;
  190.   }
  191.   void setTriggerId(Uint32 val) {
  192.     m_triggerId = val;
  193.   }
  194. };
  195. /**
  196.  * DropTrigRef.
  197.  */
  198. class DropTrigRef {
  199.   friend bool printDROP_TRIG_REF(FILE*, const Uint32*, Uint32, Uint16);
  200. public:
  201.   enum ErrorCode {
  202.     NoError = 0,
  203.     Busy = 701,
  204.     TriggerNotFound = 4238,
  205.     BadRequestType = 4247,
  206.     InvalidName = 4248
  207.   };
  208.   STATIC_CONST( SignalLength = DropTrigConf::SignalLength + 3 );
  209. private:
  210.   DropTrigConf m_conf;
  211.   //Uint32 m_userRef;
  212.   //Uint32 m_connectionPtr;
  213.   //Uint32 m_requestInfo;
  214.   //Uint32 m_tableId;
  215.   //Uint32 m_indexId;
  216.   //Uint32 m_triggerId;
  217.   Uint32 m_errorCode;
  218.   Uint32 m_errorLine;
  219.   Uint32 m_errorNode;
  220. public:
  221.   DropTrigConf* getConf() {
  222.     return &m_conf;
  223.   }
  224.   const DropTrigConf* getConf() const {
  225.     return &m_conf;
  226.   }
  227.   Uint32 getUserRef() const {
  228.     return m_conf.getUserRef();
  229.   }
  230.   void setUserRef(Uint32 val) {
  231.     m_conf.setUserRef(val);
  232.   }
  233.   Uint32 getConnectionPtr() const {
  234.     return m_conf.getConnectionPtr();
  235.   }
  236.   void setConnectionPtr(Uint32 val) {
  237.     m_conf.setConnectionPtr(val);
  238.   }
  239.   DropTrigReq::RequestType getRequestType() const {
  240.     return m_conf.getRequestType();
  241.   }
  242.   void setRequestType(DropTrigReq::RequestType val) {
  243.     m_conf.setRequestType(val);
  244.   }
  245.   Uint32 getTableId() const {
  246.     return m_conf.getTableId();
  247.   }
  248.   void setTableId(Uint32 val) {
  249.     m_conf.setTableId(val);
  250.   }
  251.   Uint32 getIndexId() const {
  252.     return m_conf.getIndexId();
  253.   }
  254.   void setIndexId(Uint32 val) {
  255.     m_conf.setIndexId(val);
  256.   }
  257.   Uint32 getTriggerId() const {
  258.     return m_conf.getTriggerId();
  259.   }
  260.   void setTriggerId(Uint32 val) {
  261.     m_conf.setTriggerId(val);
  262.   }
  263.   DropTrigRef::ErrorCode getErrorCode() const {
  264.     return (DropTrigRef::ErrorCode)m_errorCode;
  265.   }
  266.   void setErrorCode(DropTrigRef::ErrorCode val) {
  267.     m_errorCode = (Uint32)val;
  268.   }
  269.   Uint32 getErrorLine() const {
  270.     return m_errorLine;
  271.   }
  272.   void setErrorLine(Uint32 val) {
  273.     m_errorLine = val;
  274.   }
  275.   Uint32 getErrorNode() const {
  276.     return m_errorNode;
  277.   }
  278.   void setErrorNode(Uint32 val) {
  279.     m_errorNode = val;
  280.   }
  281. };
  282. #endif