⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testord.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
字号:
/* Copyright (C) 2003 MySQL AB   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef TEST_ORD_H#define TEST_ORD_H#include "SignalData.hpp"/** * Send by API to preform TEST ON / TEST OFF * * SENDER:  API * RECIVER: SimBlockCMCtrBlck */class TestOrd {  friend class Ndb;  friend class Cmvmi;  friend class MgmtSrvr;public:  enum Command {    KeepUnchanged = 0,    On            = 1,    Off           = 2,    Toggle        = 3,    COMMAND_MASK  = 3  };    enum SignalLoggerSpecification {    InputSignals       = 1,    OutputSignals      = 2,    InputOutputSignals = 3,    LOG_MASK           = 3  };  enum TraceSpecification {    TraceALL              = 0,    TraceAPI              = 1,    TraceGlobalCheckpoint = 2,    TraceLocalCheckpoint  = 4,    TraceDisconnect       = 8,    TRACE_MASK            = 15  };private:  STATIC_CONST( SignalLength = 25 );  /**   * Clear Signal   */  void clear();  /**   * Set/Get test command   */  void setTestCommand(Command);  void getTestCommand(Command&) const;    /**   * Set trace command   */  void setTraceCommand(Command, TraceSpecification);    /**   * Get trace command   */  void getTraceCommand(Command&, TraceSpecification&) const;    /**   * Return no of signal logger commands    *   * -1 Means apply command(0) to all blocks   *    */  UintR getNoOfSignalLoggerCommands() const;  /**   * Add a signal logger command to a specific block   */  void addSignalLoggerCommand(BlockNumber, Command, SignalLoggerSpecification);    /**   * Add a signal logger command to all blocks   *   * Note removes all previously added commands   *   */  void addSignalLoggerCommand(Command, SignalLoggerSpecification);			    /**   * Get Signal logger command   */  void getSignalLoggerCommand(int no, BlockNumber&, Command&, SignalLoggerSpecification&) const;    UintR testCommand;              // DATA 0   UintR traceCommand;             // DATA 1  UintR noOfSignalLoggerCommands; // DATA 2  UintR signalLoggerCommands[22]; // DATA 3 - 25};#define COMMAND_SHIFT  (0)#define TRACE_SHIFT    (2)#define LOG_SHIFT      (2)#define BLOCK_NO_SHIFT (16)#define BLOCK_NO_MASK  65535/** * Clear Signal */inlinevoidTestOrd::clear(){  setTestCommand(KeepUnchanged);  setTraceCommand(KeepUnchanged, TraceAPI); //   noOfSignalLoggerCommands = 0;}/** * Set/Get test command */inlinevoidTestOrd::setTestCommand(Command cmd){  ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::setTestCommand");  testCommand = cmd;}inlinevoidTestOrd::getTestCommand(Command & cmd) const{  cmd = (Command)(testCommand >> COMMAND_SHIFT);}/** * Set trace command */inlinevoidTestOrd::setTraceCommand(Command cmd, TraceSpecification spec){  ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::setTraceCommand");  ASSERT_RANGE(spec, 0, TRACE_MASK, "TestOrd::setTraceCommand");  traceCommand = (cmd << COMMAND_SHIFT) | (spec << TRACE_SHIFT);}/** * Get trace command */inlinevoidTestOrd::getTraceCommand(Command & cmd, TraceSpecification & spec) const{  cmd  = (Command)((traceCommand >> COMMAND_SHIFT) & COMMAND_MASK);  spec = (TraceSpecification)((traceCommand >> TRACE_SHIFT) & TRACE_MASK);}/** * Return no of signal logger commands  * * -1 Means apply command(0) to all blocks *  */inlineUintRTestOrd::getNoOfSignalLoggerCommands() const{  return noOfSignalLoggerCommands;}/** * Add a signal logger command to a specific block */inlinevoidTestOrd::addSignalLoggerCommand(BlockNumber bnr, 				Command cmd, SignalLoggerSpecification spec){  ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::addSignalLoggerCommand");  ASSERT_RANGE(spec, 0, LOG_MASK, "TestOrd::addSignalLoggerCommand");  //ASSERT_MAX(bnr, BLOCK_NO_MASK, "TestOrd::addSignalLoggerCommand");  signalLoggerCommands[noOfSignalLoggerCommands] =    (bnr << BLOCK_NO_SHIFT) | (cmd << COMMAND_SHIFT) | (spec << LOG_SHIFT);  noOfSignalLoggerCommands ++;}/** * Add a signal logger command to all blocks * * Note removes all previously added commands * */inlinevoidTestOrd::addSignalLoggerCommand(Command cmd, SignalLoggerSpecification spec){  ASSERT_RANGE(cmd, 0, COMMAND_MASK, "TestOrd::addSignalLoggerCommand");  ASSERT_RANGE(spec, 0, LOG_MASK, "TestOrd::addSignalLoggerCommand");  noOfSignalLoggerCommands = ~0;  signalLoggerCommands[0] = (cmd << COMMAND_SHIFT) | (spec << LOG_SHIFT);}/** * Get Signal logger command */inlinevoidTestOrd::getSignalLoggerCommand(int no, BlockNumber & bnr, 				Command & cmd, 				SignalLoggerSpecification & spec) const{  bnr  = (BlockNumber)((signalLoggerCommands[no] >> BLOCK_NO_SHIFT) 		       & BLOCK_NO_MASK);  cmd  = (Command)((signalLoggerCommands[no] >> COMMAND_SHIFT)  		   & COMMAND_MASK);  spec = (SignalLoggerSpecification)((signalLoggerCommands[no] >> LOG_SHIFT) 				     & LOG_MASK);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -