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

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 SD_EVENT_REPORT_H
  14. #define SD_EVENT_REPORT_H
  15. #include "SignalData.hpp"
  16. /**
  17.  * Send by different block to report that a event has taken place
  18.  *
  19.  * SENDER:  *Block*
  20.  * RECIVER: SimBlockCMCtrBlck
  21.  */
  22. class EventReport {
  23.   friend class SimulatedBlock;
  24.   friend class Cmvmi;
  25.   friend class SimblockMissra;
  26.   friend class Dbacc;
  27.   friend class Dblqh;
  28.   friend class Dbtup;
  29.   friend class Dbtc;
  30.   friend class Ndbcntr;
  31.   friend class Qmgr;
  32.   friend class Dbdih;
  33.   friend class Dbdict;
  34.   friend class MgmtSrvr;
  35.   friend class Grep;
  36. public:
  37.   /* 
  38.      EventType defines what event reports to send. 
  39.      The ORDER is NOT important anymore. //ejonore 2003-07-24 15:03
  40.      
  41.      HOW TO ADD A NEW EVENT
  42.      --------------------
  43.      1) Add SentHeartbeat EventType in the category where it belongs.
  44.         ...
  45.         // INFO
  46.         SentHeartbeat,
  47.         InfoEvent
  48.         ...
  49.      2) remeber to update # of events below. Just to keep count...
  50.         Number of event types = 53
  51.      3) Add a new SentHeartBeat entry to EventLogger::matrix[]. 
  52.        ...
  53.        // INFO
  54.        { EventReport::SentHeartbeat, LogLevel::llInfo, 11, INFO },
  55.        { EventReport::InfoEvent,     LogLevel::llInfo,  2, INFO }      
  56.        ...
  57.      4) Add SentHeartbeat in EventLogger::getText()
  58.    */
  59.   enum EventType {
  60.     // CONNECTION
  61.     Connected = 0,
  62.     Disconnected = 1,
  63.     CommunicationClosed = 2,
  64.     CommunicationOpened = 3,
  65.     ConnectedApiVersion = 51,
  66.     // CHECKPOINT
  67.     GlobalCheckpointStarted = 4,
  68.     GlobalCheckpointCompleted = 5,
  69.     LocalCheckpointStarted = 6,
  70.     LocalCheckpointCompleted = 7,
  71.     LCPStoppedInCalcKeepGci = 8,
  72.     LCPFragmentCompleted = 9,
  73.     // STARTUP
  74.     NDBStartStarted = 10,
  75.     NDBStartCompleted = 11,
  76.     STTORRYRecieved = 12,
  77.     StartPhaseCompleted = 13,
  78.     CM_REGCONF = 14,
  79.     CM_REGREF = 15,
  80.     FIND_NEIGHBOURS = 16,
  81.     NDBStopStarted = 17,
  82.     NDBStopAborted = 18,
  83.     StartREDOLog = 19,
  84.     StartLog = 20,
  85.     UNDORecordsExecuted = 21,
  86.     // NODERESTART
  87.     NR_CopyDict = 22,
  88.     NR_CopyDistr = 23,
  89.     NR_CopyFragsStarted = 24,
  90.     NR_CopyFragDone = 25,
  91.     NR_CopyFragsCompleted = 26,
  92.     
  93.     // NODEFAIL
  94.     NodeFailCompleted = 27,
  95.     NODE_FAILREP = 28,
  96.     ArbitState = 29,
  97.     ArbitResult = 30,
  98.     GCP_TakeoverStarted = 31,
  99.     GCP_TakeoverCompleted = 32,
  100.     LCP_TakeoverStarted = 33,
  101.     LCP_TakeoverCompleted = 34,
  102.     
  103.     // STATISTIC
  104.     TransReportCounters = 35,
  105.     OperationReportCounters = 36,
  106.     TableCreated = 37,
  107.     UndoLogBlocked = 38,
  108.     JobStatistic = 39,
  109.     SendBytesStatistic = 40,
  110.     ReceiveBytesStatistic = 41,
  111.     MemoryUsage = 50,
  112.     // ERROR
  113.     TransporterError = 42,
  114.     TransporterWarning = 43,
  115.     MissedHeartbeat = 44,
  116.     DeadDueToHeartbeat = 45,
  117.     WarningEvent = 46,
  118.     // INFO
  119.     SentHeartbeat = 47,
  120.     CreateLogBytes = 48,
  121.     InfoEvent = 49,
  122.     // SINGLE USER
  123.     SingleUser = 52,
  124.     /* unused 53 */
  125.     //BACKUP
  126.     BackupStarted = 54,
  127.     BackupFailedToStart = 55,
  128.     BackupCompleted = 56,
  129.     BackupAborted = 57
  130.   };
  131.   
  132.   void setEventType(EventType type);
  133.   EventType getEventType() const;
  134.   UintR eventType;    // DATA 0
  135. };
  136. inline
  137. void
  138. EventReport::setEventType(EventType type){
  139.   eventType = (UintR) type;
  140. }
  141. inline
  142. EventReport::EventType
  143. EventReport::getEventType() const {
  144.   return (EventType)eventType;
  145. }
  146. #endif