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