GetTabInfo.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
- /* 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 GET_INFO_TAB_HPP
- #define GET_INFO_TAB_HPP
- #include "SignalData.hpp"
- /**
- * GetTabInfo - Get table info from DICT
- *
- * Successfull return = series of DICTTABINFO-signals
- */
- class GetTabInfoReq {
- /**
- * Sender(s) / Reciver(s)
- */
- // Blocks
- friend class Dbdict;
- friend class Backup;
- friend class Trix;
- friend class DbUtil;
- // API
- friend class Table;
- friend bool printGET_TABINFO_REQ(FILE *, const Uint32 *, Uint32, Uint16);
- public:
- STATIC_CONST( SignalLength = 5 );
- // STATIC_CONST( MaxTableNameLengthInWords = 20 );
- public:
- Uint32 senderData;
- Uint32 senderRef;
- /**
- * 0 = request by id, 1 = request by name
- */
- Uint32 requestType;
-
- union {
- Uint32 tableId;
- Uint32 tableNameLen;
- };
- Uint32 unused; // This is located here so that Req & Ref have the same format
- // Uint32 tableName[MaxTableNameLengthInWords];
-
- enum RequestType {
- RequestById = 0,
- RequestByName = 1,
- LongSignalConf = 2
- };
- SECTION( TABLE_NAME = 0 );
- };
- class GetTabInfoRef {
- /**
- * Sender(s) / Reciver(s)
- */
- // Blocks
- friend class Dbdict;
- friend class Backup;
- friend class Trix;
- friend class DbUtil;
- // API
- friend class Table;
- friend bool printGET_TABINFO_REF(FILE *, const Uint32 *, Uint32, Uint16);
- public:
- STATIC_CONST( SignalLength = 5 );
-
- public:
- Uint32 senderData;
- Uint32 senderRef;
- Uint32 requestType; // 0 = request by id, 1 = request by name
- union {
- Uint32 tableId;
- Uint32 tableNameLen;
- };
- Uint32 errorCode;
- enum ErrorCode {
- InvalidTableId = 709,
- TableNotDefined = 723,
- TableNameTooLong = 702,
- Busy = 701
- };
- };
- class GetTabInfoConf {
- /**
- * Sender(s) / Reciver(s)
- */
- // Blocks
- friend class Dbdict;
- friend class Backup;
- friend class Trix;
- friend class DbUtil;
- friend class Suma;
- // API
- friend class Table;
- friend bool printGET_TABINFO_CONF(FILE *, const Uint32 *, Uint32, Uint16);
- public:
- STATIC_CONST( SignalLength = 4 );
-
- SECTION( DICT_TAB_INFO = 0 );
- public:
- Uint32 senderData;
- Uint32 tableId;
- Uint32 gci; // For table
- Uint32 totalLen; // In words
- };
- #endif