📄 accscan.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 ACC_SCAN_HPP#define ACC_SCAN_HPP#include "SignalData.hpp"/* * Used by ACC and TUX scan. */class AccScanReq { /** * Sender(s) */ friend class Dblqh; /** * Reciver(s) */ friend class Dbacc; friend class Dbtux; friend class Dbtup;public: STATIC_CONST( SignalLength = 8 ); private: Uint32 senderData; Uint32 senderRef; Uint32 tableId; Uint32 fragmentNo; Uint32 requestInfo; Uint32 transId1; Uint32 transId2; Uint32 savePointId; /** * Previously there where also a scan type */ static Uint32 getLockMode(const Uint32 & requestInfo); static Uint32 getReadCommittedFlag(const Uint32 & requestInfo); static Uint32 getDescendingFlag(const Uint32 & requestInfo); static void setLockMode(Uint32 & requestInfo, Uint32 lockMode); static void setReadCommittedFlag(Uint32 & requestInfo, Uint32 readCommitted); static void setDescendingFlag(Uint32 & requestInfo, Uint32 descending);};/** * Request Info * * l = Lock Mode - 1 Bit 2 * h = Read Committed - 1 Bit 5 * z = Descending (TUX) - 1 Bit 6 * * 1111111111222222222233 * 01234567890123456789012345678901 * l hz */#define AS_LOCK_MODE_SHIFT (2)#define AS_LOCK_MODE_MASK (1)#define AS_READ_COMMITTED_SHIFT (5)#define AS_DESCENDING_SHIFT (6)inline Uint32AccScanReq::getLockMode(const Uint32 & requestInfo){ return (requestInfo >> AS_LOCK_MODE_SHIFT) & AS_LOCK_MODE_MASK;}inlineUint32AccScanReq::getReadCommittedFlag(const Uint32 & requestInfo){ return (requestInfo >> AS_READ_COMMITTED_SHIFT) & 1;}inlineUint32AccScanReq::getDescendingFlag(const Uint32 & requestInfo){ return (requestInfo >> AS_DESCENDING_SHIFT) & 1;}inlinevoidAccScanReq::setLockMode(UintR & requestInfo, UintR val){ ASSERT_MAX(val, AS_LOCK_MODE_MASK, "AccScanReq::setLockMode"); requestInfo |= (val << AS_LOCK_MODE_SHIFT);}inlinevoidAccScanReq::setReadCommittedFlag(UintR & requestInfo, UintR val){ ASSERT_BOOL(val, "AccScanReq::setReadCommittedFlag"); requestInfo |= (val << AS_READ_COMMITTED_SHIFT);}inlinevoidAccScanReq::setDescendingFlag(UintR & requestInfo, UintR val){ ASSERT_BOOL(val, "AccScanReq::setDescendingFlag"); requestInfo |= (val << AS_DESCENDING_SHIFT);}class AccScanConf { /** * Sender(s) */ friend class Dbacc; friend class Dbtux; friend class Dbtup; /** * Reciver(s) */ friend class Dblqh; enum { ZEMPTY_FRAGMENT = 0, ZNOT_EMPTY_FRAGMENT = 1 };public: STATIC_CONST( SignalLength = 8 ); private: Uint32 scanPtr; Uint32 accPtr; Uint32 unused1; Uint32 unused2; Uint32 unused3; Uint32 unused4; Uint32 unused5; Uint32 flag;};class AccCheckScan { friend class Dbacc; friend class Dbtux; friend class Dbtup; friend class Dblqh; enum { ZCHECK_LCP_STOP = 0, ZNOT_CHECK_LCP_STOP = 1 };public: STATIC_CONST( SignalLength = 2 );private: Uint32 accPtr; // scanptr.i in ACC or TUX Uint32 checkLcpStop; // from enum};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -