📄 grepimpl.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 GREP_IMPL_HPP#define GREP_IMPL_HPP#include "SignalData.hpp"#include <GrepError.hpp>#include <NodeBitmask.hpp>/***************************************************************************** * GREP REQ Request a Global Replication (between SS and PS) *****************************************************************************//** * @class GrepReq * @brief */class GrepReq { /** * Sender(s)/Reciver(s) */ friend class Grep;public: enum Request { START = 0, ///< Start Global Replication (all phases) SLOWSTOP = 1, ///< Stop after finishing applying current GCI epoch FASTSTOP = 2, ///< Stop after finishing applying all PS GCI epochs STATUS = 3, ///< Status REMOVE_BUFFERS = 4, ///< Remove buffers from PS and SS START_SUBSCR = 5, START_METALOG = 6, ///< Start Global Replication Logging of Metadata START_METASCAN = 7, ///< Start Global Replication Scanning of Metadata START_DATALOG = 8, ///< Start Global Replication Logging of table data START_DATASCAN = 9, ///< Start Global Replication Scanning of table data START_REQUESTOR = 10, ///< Start Global Replication Requestor START_TRANSFER = 11, ///< Start SS-PS transfer START_APPLY = 12, ///< Start applying GCI epochs in SS START_DELETE = 13, ///< Start deleting buffers at PS/SS REP automatic. STOP_SUBSCR = 14, ///< Remove subscription STOP_METALOG = 15, ///< Stop Global Replication Logging of Metadata STOP_METASCAN = 16, ///< Stop Global Replication Scanning of Metadata STOP_DATALOG = 17, ///< Stop Global Replication Logging of table data STOP_DATASCAN = 18, ///< Stop Global Replication Scanning of table data STOP_REQUESTOR = 19, ///< Stop Global Replication Requestor STOP_TRANSFER = 20, ///< Stop SS-PS transfer STOP_APPLY = 21, ///< Stop applying GCI epochs in SS STOP_DELETE = 22, ///< Stop deleting buffers at PS/SS REP automatically CREATE_SUBSCR = 23, ///< Create subscription ID in SUMA DROP_TABLE = 24, ///< Create subscription ID in SUMA STOP = 25, NO_REQUEST = 0xffffffff }; STATIC_CONST( SignalLength = 2 ); Uint32 senderRef; Uint32 request;};/***************************************************************************** * CREATE Between SS and PS (DB and REP nodes) *****************************************************************************//** * @class GrepSubCreateReq * @brief */class GrepSubCreateReq { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_CREATE_REQ(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 5 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 subscriptionType; Uint32 senderRef; Uint32 senderData; SECTION( TABLE_LIST = 0 ); };/** * @class GrepSubCreateReq * @brief */class GrepSubCreateRef { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_CREATE_REF(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 6 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 subscriptionType; Uint32 err; Uint32 senderRef; Uint32 senderData;};/** * @class GrepSubCreateConf * @brief */class GrepSubCreateConf { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_CREATE_CONF(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 6 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 subscriptionType; Uint32 senderRef; Uint32 senderData; Uint32 noOfNodeGroups;};/***************************************************************************** * CREATE Internal between PS DB nodes *****************************************************************************//** * @class GrepCreateReq * @brief */class GrepCreateReq { /** * Sender(s)/Reciver(s) */ friend class GrepParticipant; friend bool printGREP_CREATE_REQ(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 8 ); Uint32 senderRef; Uint32 senderData; Uint32 subscriberData; Uint32 subscriberRef; Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 subscriptionType; SECTION( TABLE_LIST = 0 ); };/** * @class GrepCreateRef * @brief */class GrepCreateRef { /** * Sender(s)/Reciver(s) */ friend class GrepParticipant; friend bool printGREP_CREATE_REF(FILE *, const Uint32 *, Uint32, Uint16);public: enum ErrorCode { NF_FakeErrorREF = GrepError::NF_FakeErrorREF }; STATIC_CONST( SignalLength = 6 ); Uint32 senderRef; Uint32 senderData; union { Uint32 err; Uint32 errorCode; }; Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 subscriptionType;};/** * @class GrepCreateConf * @brief */class GrepCreateConf { /** * Sender(s)/Reciver(s) */ friend class GrepParticipant; friend bool printGREP_CREATE_CONF(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 6 ); Uint32 senderNodeId; Uint32 senderRef; Uint32 senderData; Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 subscriptionType;};/***************************************************************************** * START Between SS and PS (DB and REP nodes) *****************************************************************************//** * @class GrepSubStartReq * @brief */class GrepSubStartReq { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_START_REQ(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 5 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 senderRef; Uint32 senderData; Uint32 part;};/** * @class GrepSubStartRef * @brief */class GrepSubStartRef { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_START_REF(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 6 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 err; Uint32 senderRef; Uint32 senderData; Uint32 part;};/** * @class GrepSubStartConf * @brief */class GrepSubStartConf { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_START_CONF(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 6 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 senderRef; Uint32 senderData; Uint32 part; Uint32 firstGCI;};/***************************************************************************** * START Internal between PS DB nodes *****************************************************************************//** * @class GrepStartReq * @brief */class GrepStartReq { /** * Sender(s)/Reciver(s) */ friend class GrepParticipant; friend bool printGREP_START_REQ(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 4 ); Uint32 senderData; Uint32 part; Uint32 subscriptionId; Uint32 subscriptionKey;};/** * @class GrepStartRef * @brief */class GrepStartRef { /** * Sender(s)/Reciver(s) */ friend class GrepParticipant; friend bool printGREP_START_REF(FILE *, const Uint32 *, Uint32, Uint16);public: enum ErrorCode { NF_FakeErrorREF = GrepError::NF_FakeErrorREF }; STATIC_CONST( SignalLength = 6 ); Uint32 senderRef; Uint32 senderData; Uint32 part; Uint32 subscriptionId; Uint32 subscriptionKey; union { Uint32 err; Uint32 errorCode; };};/** * @class GrepStartConf * @brief */class GrepStartConf { /** * Sender(s)/Reciver(s) */ friend class GrepParticipant; friend bool printGREP_START_CONF(FILE *, const Uint32 *, Uint32, Uint16); public: STATIC_CONST( SignalLength = 7 ); Uint32 senderRef; Uint32 senderData; Uint32 part; Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 firstGCI; Uint32 senderNodeId; };/***************************************************************************** * SCAN (SYNC) Between SS and PS (REP and DB nodes) *****************************************************************************//** * @class GrepSubSyncReq * @brief */class GrepSubSyncReq { /** * Sender(s)/Reciver(s) */ friend class Grep; friend bool printGREP_SUB_SYNC_REQ(FILE *, const Uint32 *, Uint32, Uint16);public: STATIC_CONST( SignalLength = 5 ); Uint32 subscriptionId; Uint32 subscriptionKey; Uint32 senderRef; Uint32 senderData; Uint32 part;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -