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

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 CREATE_EVNT_HPP
  14. #define CREATE_EVNT_HPP
  15. #include "SignalData.hpp"
  16. #include <NodeBitmask.hpp>
  17. #include <signaldata/DictTabInfo.hpp>
  18. /**
  19.  * DropEvntReq.
  20.  */
  21. class DropEvntReq {
  22.   friend bool printDROP_EVNT_REQ(FILE*, const Uint32*, Uint32, Uint16);
  23. public:
  24.   STATIC_CONST( SignalLength = 2 );
  25.   SECTION( EVENT_NAME_SECTION = 0 );
  26.   union {             // user block reference
  27.     Uint32 senderRef;
  28.     Uint32 m_userRef;
  29.   };
  30.   union {
  31.     Uint32 senderData;
  32.     Uint32 m_userData;            // user 
  33.   };
  34.   Uint32 getUserRef() const {
  35.     return m_userRef;
  36.   }
  37.   void setUserRef(Uint32 val) {
  38.     m_userRef = val;
  39.   }
  40.   Uint32 getUserData() const {
  41.     return m_userData;
  42.   }
  43.   void setUserData(Uint32 val) {
  44.     m_userData = val;
  45.   }
  46. };
  47. /**
  48.  * DropEvntConf.
  49.  */
  50. class DropEvntConf {
  51.   friend bool printDROP_EVNT_CONF(FILE*, const Uint32*, Uint32, Uint16);
  52. public:
  53.   STATIC_CONST( SignalLength = 2 );
  54.   union {             // user block reference
  55.     Uint32 senderRef;
  56.     Uint32 m_userRef;
  57.   };
  58.   union {
  59.     Uint32 senderData;
  60.     Uint32 m_userData;            // user 
  61.   };
  62.   Uint32 getUserRef() const {
  63.     return m_userRef;
  64.   }
  65.   void setUserRef(Uint32 val) {
  66.     m_userRef = val;
  67.   }
  68.   Uint32 getUserData() const {
  69.     return m_userData;
  70.   }
  71.   void setUserData(Uint32 val) {
  72.     m_userData = val;
  73.   }
  74. };
  75. /**
  76.  * DropEvntRef.
  77.  */
  78. class DropEvntRef {
  79.   friend bool printDROP_EVNT_REF(FILE*, const Uint32*, Uint32, Uint16);
  80. public:
  81.   enum ErrorCode {
  82.     NoError = 0,
  83.     Undefined = 1,
  84.     UndefinedTCError = 2,
  85.     NF_FakeErrorREF = 11,
  86.     Busy = 701,
  87.     NotMaster = 702,
  88.     SeizeError = 703,
  89.     EventNotFound = 4238,
  90.     EventNameTooLong = 4241,
  91.     TooManyEvents = 4242,
  92.     BadRequestType = 4247,
  93.     InvalidName = 4248,
  94.     InvalidPrimaryTable = 4249,
  95.     InvalidEventType = 4250,
  96.     NotUnique = 4251,
  97.     AllocationError = 4252,
  98.     CreateEventTableFailed = 4253,
  99.     InvalidAttributeOrder = 4255,
  100.     Temporary = 0x1 << 16
  101.   };
  102.   STATIC_CONST( SignalLength = 5 );
  103.   union {             // user block reference
  104.     Uint32 senderRef;
  105.     Uint32 m_userRef;
  106.   };
  107.   union {
  108.     Uint32 senderData;
  109.     Uint32 m_userData;            // user 
  110.   };
  111.   union {
  112.     Uint32 errorCode;
  113.     Uint32 m_errorCode;
  114.   };
  115.   Uint32 m_errorLine;
  116.   Uint32 m_errorNode;
  117.   bool isTemporary() const
  118.   { return (errorCode &  Temporary) > 0; }
  119.   void setTemporary()
  120.   { errorCode |=  Temporary; }
  121.   ErrorCode setTemporary(ErrorCode ec)
  122.   { return (ErrorCode) (errorCode = ((Uint32) ec | (Uint32)Temporary)); }
  123.   Uint32 getUserRef() const {
  124.     return m_userRef;
  125.   }
  126.   void setUserRef(Uint32 val) {
  127.     m_userRef = val;
  128.   }
  129.   Uint32 getUserData() const {
  130.     return m_userData;
  131.   }
  132.   void setUserData(Uint32 val) {
  133.     m_userData = val;
  134.   }
  135.   DropEvntRef::ErrorCode getErrorCode() const {
  136.     return (DropEvntRef::ErrorCode)m_errorCode;
  137.   }
  138.   void setErrorCode(DropEvntRef::ErrorCode val) {
  139.     m_errorCode = (Uint32)val;
  140.   }
  141.   Uint32 getErrorLine() const {
  142.     return m_errorLine;
  143.   }
  144.   void setErrorLine(Uint32 val) {
  145.     m_errorLine = val;
  146.   }
  147.   Uint32 getErrorNode() const {
  148.     return m_errorNode;
  149.   }
  150.   void setErrorNode(Uint32 val) {
  151.     m_errorNode = val;
  152.   }
  153. };
  154. /**
  155.  * CreateEvntReq.
  156.  */
  157. struct CreateEvntReq {
  158.   friend bool printCREATE_EVNT_REQ(FILE*, const Uint32*, Uint32, Uint16);
  159.   enum RequestType {
  160.     RT_UNDEFINED = 0,
  161.     RT_USER_CREATE = 1,
  162.     RT_USER_GET = 2,
  163.     RT_DICT_AFTER_GET = 0x1 << 4
  164.     //    RT_DICT_MASTER    = 0x2 << 4,
  165.     //    RT_DICT_COMMIT = 0xC << 4,
  166.     //    RT_DICT_ABORT = 0xF << 4,
  167.     //    RT_TC = 5 << 8
  168.   };
  169.   STATIC_CONST( SignalLengthGet = 3 );
  170.   STATIC_CONST( SignalLengthCreate = 5+MAXNROFATTRIBUTESINWORDS );
  171.   STATIC_CONST( SignalLength = 7+MAXNROFATTRIBUTESINWORDS );
  172.   //  SECTION( ATTRIBUTE_LIST_SECTION = 0 );
  173.   SECTION( EVENT_NAME_SECTION = 0 );
  174.   union {
  175.     Uint32 m_userRef;             // user block reference
  176.     Uint32 senderRef;             // user block reference
  177.   };
  178.   union {
  179.     Uint32 m_userData;            // user 
  180.     Uint32 senderData;            // user 
  181.   };
  182.   Uint32 m_requestInfo;
  183.   Uint32 m_tableId;             // table to event
  184.   AttributeMask::Data m_attrListBitmask;
  185.   Uint32 m_eventType;           // from DictTabInfo::TableType
  186.   Uint32 m_eventId;             // event table id set by DICT/SUMA
  187.   Uint32 m_eventKey;            // event table key set by DICT/SUMA
  188.   Uint32 getUserRef() const {
  189.     return m_userRef;
  190.   }
  191.   void setUserRef(Uint32 val) {
  192.     m_userRef = val;
  193.   }
  194.   Uint32 getUserData() const {
  195.     return m_userData;
  196.   }
  197.   void setUserData(Uint32 val) {
  198.     m_userData = val;
  199.   }
  200.   CreateEvntReq::RequestType getRequestType() const {
  201.     const Uint32 val = BitmaskImpl::getField(1, &m_requestInfo, 0, 16);
  202.     return (CreateEvntReq::RequestType)val;
  203.   }
  204.   void setRequestType(CreateEvntReq::RequestType val) {
  205.     m_requestInfo = (Uint32)val;
  206.   }
  207.   Uint32 getRequestFlag() const {
  208.     return BitmaskImpl::getField(1, &m_requestInfo, 16, 16);
  209.   };
  210.   void addRequestFlag(Uint32 val) {
  211.     val |= BitmaskImpl::getField(1, &m_requestInfo, 16, 16);
  212.     BitmaskImpl::setField(1, &m_requestInfo, 16, 16, val);
  213.   };
  214.   Uint32 getTableId() const {
  215.     return m_tableId;
  216.   }
  217.   void setTableId(Uint32 val) {
  218.     m_tableId = val;
  219.   }
  220.   AttributeMask getAttrListBitmask() const {
  221.     AttributeMask tmp;
  222.     tmp.assign(m_attrListBitmask);
  223.     return tmp;
  224.   }
  225.   void setAttrListBitmask(const AttributeMask & val) {
  226.     AttributeMask::assign(m_attrListBitmask.data, val);
  227.   }
  228.   Uint32 getEventType() const {
  229.     return m_eventType;
  230.   }
  231.   void setEventType(Uint32 val) {
  232.     m_eventType = (Uint32)val;
  233.   }
  234.   Uint32 getEventId() const {
  235.     return m_eventId;
  236.   }
  237.   void setEventId(Uint32 val) {
  238.     m_eventId = val;
  239.   }
  240.   Uint32 getEventKey() const {
  241.     return m_eventKey;
  242.   }
  243.   void setEventKey(Uint32 val) {
  244.     m_eventKey = val;
  245.   }
  246. };
  247. /**
  248.  * CreateEvntConf.
  249.  */
  250. class CreateEvntConf {
  251.   friend bool printCREATE_EVNT_CONF(FILE*, const Uint32*, Uint32, Uint16);
  252. public:
  253.   //  STATIC_CONST( InternalLength = 3 );
  254.   STATIC_CONST( SignalLength = 7+MAXNROFATTRIBUTESINWORDS );
  255.   union {
  256.     Uint32 m_userRef;             // user block reference
  257.     Uint32 senderRef;             // user block reference
  258.   };
  259.   union {
  260.     Uint32 m_userData;            // user 
  261.     Uint32 senderData;            // user 
  262.   };
  263.   Uint32 m_requestInfo;
  264.   Uint32 m_tableId;
  265.   AttributeMask m_attrListBitmask;
  266.   Uint32 m_eventType;
  267.   Uint32 m_eventId;
  268.   Uint32 m_eventKey;
  269.   Uint32 getUserRef() const {
  270.     return m_userRef;
  271.   }
  272.   void setUserRef(Uint32 val) {
  273.     m_userRef = val;
  274.   }
  275.   Uint32 getUserData() const {
  276.     return m_userData;
  277.   }
  278.   void setUserData(Uint32 val) {
  279.     m_userData = val;
  280.   }
  281.   CreateEvntReq::RequestType getRequestType() const {
  282.     return (CreateEvntReq::RequestType)m_requestInfo;
  283.   }
  284.   void setRequestType(CreateEvntReq::RequestType val) {
  285.     m_requestInfo = (Uint32)val;
  286.   }
  287.   Uint32 getTableId() const {
  288.     return m_tableId;
  289.   }
  290.   void setTableId(Uint32 val) {
  291.     m_tableId = val;
  292.   }
  293.   AttributeMask getAttrListBitmask() const {
  294.     return m_attrListBitmask;
  295.   }
  296.   void setAttrListBitmask(const AttributeMask & val) {
  297.     m_attrListBitmask = val;
  298.   }
  299.   Uint32 getEventType() const {
  300.     return m_eventType;
  301.   }
  302.   void setEventType(Uint32 val) {
  303.     m_eventType = (Uint32)val;
  304.   }
  305.   Uint32 getEventId() const {
  306.     return m_eventId;
  307.   }
  308.   void setEventId(Uint32 val) {
  309.     m_eventId = val;
  310.   }
  311.   Uint32 getEventKey() const {
  312.     return m_eventKey;
  313.   }
  314.   void setEventKey(Uint32 val) {
  315.     m_eventKey = val;
  316.   }
  317. };
  318. /**
  319.  * CreateEvntRef.
  320.  */
  321. struct CreateEvntRef {
  322.   friend class SafeCounter;
  323.   friend bool printCREATE_EVNT_REF(FILE*, const Uint32*, Uint32, Uint16);
  324.   STATIC_CONST( SignalLength = 10 );
  325.   enum ErrorCode {
  326.     NoError = 0,
  327.     Undefined = 1,
  328.     UndefinedTCError = 2,
  329.     NF_FakeErrorREF = 11,
  330.     Busy = 701,
  331.     NotMaster = 702,
  332.     SeizeError = 703,
  333.     EventNotFound = 4238,
  334.     EventExists = 4239,
  335.     EventNameTooLong = 4241,
  336.     TooManyEvents = 4242,
  337.     //    EventExists = 4244,
  338.     AttributeNotStored = 4245,
  339.     AttributeNullable = 4246,
  340.     BadRequestType = 4247,
  341.     InvalidName = 4248,
  342.     InvalidPrimaryTable = 4249,
  343.     InvalidEventType = 4250,
  344.     NotUnique = 4251,
  345.     AllocationError = 4252,
  346.     CreateEventTableFailed = 4253,
  347.     InvalidAttributeOrder = 4255,
  348.     Temporary = 0x1 << 16
  349.   };
  350.   bool isTemporary() const;
  351.   void setTemporary();
  352.   ErrorCode setTemporary(ErrorCode ec);
  353.   static ErrorCode makeTemporary(ErrorCode ec);
  354.   union {
  355.     Uint32 m_userRef;             // user block reference
  356.     Uint32 senderRef;             // user block reference
  357.   };
  358.   union {
  359.     Uint32 m_userData;            // user 
  360.     Uint32 senderData;            // user 
  361.   };
  362.   Uint32 m_requestInfo;
  363.   Uint32 m_tableId;
  364.   Uint32 m_eventType;
  365.   Uint32 m_eventId;
  366.   Uint32 m_eventKey;
  367.   Uint32 errorCode;
  368.   Uint32 m_errorLine;
  369.   Uint32 m_errorNode;
  370. #if 0
  371.   CreateEvntConf* getConf() {
  372.     return &m_conf;
  373.   }
  374.   const CreateEvntConf* getConf() const {
  375.     return &m_conf;
  376.   }
  377. #endif
  378.   Uint32 getUserRef() const {
  379.     return m_userRef;
  380.   }
  381.   void setUserRef(Uint32 val) {
  382.     m_userRef = val;
  383.   }
  384.   Uint32 getUserData() const {
  385.     return m_userData;
  386.   }
  387.   void setUserData(Uint32 val) {
  388.     m_userData = val;
  389.   }
  390.   CreateEvntReq::RequestType getRequestType() const {
  391.     return (CreateEvntReq::RequestType)m_requestInfo;
  392.   }
  393.   void setRequestType(CreateEvntReq::RequestType val) {
  394.     m_requestInfo = (Uint32)val;
  395.   }
  396.   Uint32 getTableId() const {
  397.     return m_tableId;
  398.   }
  399.   void setTableId(Uint32 val) {
  400.     m_tableId = val;
  401.   }
  402.   Uint32 getEventType() const {
  403.     return m_eventType;
  404.   }
  405.   void setEventType(Uint32 val) {
  406.     m_eventType = (Uint32)val;
  407.   }
  408.   Uint32 getEventId() const {
  409.     return m_eventId;
  410.   }
  411.   void setEventId(Uint32 val) {
  412.     m_eventId = val;
  413.   }
  414.   Uint32 getEventKey() const {
  415.     return m_eventKey;
  416.   }
  417.   void setEventKey(Uint32 val) {
  418.     m_eventKey = val;
  419.   }
  420.   CreateEvntRef::ErrorCode getErrorCode() const {
  421.     return (CreateEvntRef::ErrorCode)errorCode;
  422.   }
  423.   void setErrorCode(CreateEvntRef::ErrorCode val) {
  424.     errorCode = (Uint32)val;
  425.   }
  426.   Uint32 getErrorLine() const {
  427.     return m_errorLine;
  428.   }
  429.   void setErrorLine(Uint32 val) {
  430.     m_errorLine = val;
  431.   }
  432.   Uint32 getErrorNode() const {
  433.     return m_errorNode;
  434.   }
  435.   void setErrorNode(Uint32 val) {
  436.     m_errorNode = val;
  437.   }
  438. };
  439. inline bool CreateEvntRef::isTemporary() const
  440. { return (errorCode &  CreateEvntRef::Temporary) > 0; }
  441. inline void CreateEvntRef::setTemporary()
  442. { errorCode |=  CreateEvntRef::Temporary; }
  443. inline CreateEvntRef::ErrorCode CreateEvntRef::setTemporary(ErrorCode ec)
  444. { return (CreateEvntRef::ErrorCode) 
  445.     (errorCode = ((Uint32) ec | (Uint32)CreateEvntRef::Temporary)); }
  446. inline CreateEvntRef::ErrorCode CreateEvntRef::makeTemporary(ErrorCode ec)
  447. { return (CreateEvntRef::ErrorCode) 
  448.     ( (Uint32) ec | (Uint32)CreateEvntRef::Temporary ); }
  449. #endif