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

📄 transporterdefinitions.hpp

📁 MySQL数据库开发源码 值得一看哦
💻 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 TransporterDefinitions_H#define TransporterDefinitions_H#include <ndb_global.h> #include <kernel_types.h> #include <NdbOut.hpp>/** * The maximum number of transporters allowed * A maximum is needed to be able to allocate the array of transporters */const int MAX_NTRANSPORTERS = 128;/** * The sendbuffer limit after which the contents of the buffer is sent */const int TCP_SEND_LIMIT = 64000;enum SendStatus {   SEND_OK = 0,   SEND_BLOCKED = 1,   SEND_DISCONNECTED = 2,   SEND_BUFFER_FULL = 3,  SEND_MESSAGE_TOO_BIG = 4,  SEND_UNKNOWN_NODE = 5};/** * Protocol6 Header +  *  (optional signal id) + (optional checksum) + (signal data) *///const Uint32 MAX_MESSAGE_SIZE = (12+4+4+(4*25));const Uint32 MAX_MESSAGE_SIZE = (12+4+4+(4*25)+(3*4)+4*4096);/** * TransporterConfiguration * * used for setting up a transporter. the union member specific is for * information specific to a transporter type. */struct TransporterConfiguration {  Int32 s_port; // negative port number implies dynamic port  const char *remoteHostName;  const char *localHostName;  NodeId remoteNodeId;  NodeId localNodeId;  NodeId serverNodeId;  bool checksum;  bool signalId;  bool isMgmConnection; // is a mgm connection, requires transforming  union { // Transporter specific configuration information    struct {      Uint32 sendBufferSize;     // Size of SendBuffer of priority B       Uint32 maxReceiveSize;     // Maximum no of bytes to receive    } tcp;        struct {      Uint32 shmKey;      Uint32 shmSize;      int    signum;    } shm;        struct {      Uint32 prioASignalSize;      Uint32 prioBSignalSize;    } ose;    struct {      Uint32 sendLimit;        // Packet size      Uint32 bufferSize;       // Buffer size            Uint32 nLocalAdapters;   // 1 or 2, the number of adapters on local host            Uint32 remoteSciNodeId0; // SCInodeId for adapter 1      Uint32 remoteSciNodeId1; // SCInodeId for adapter 2    } sci;  };};struct SignalHeader {	  Uint32 theVerId_signalNumber;    // 4 bit ver id - 16 bit gsn  Uint32 theReceiversBlockNumber;  // Only 16 bit blocknum    Uint32 theSendersBlockRef;  Uint32 theLength;  Uint32 theSendersSignalId;  Uint32 theSignalId;  Uint16 theTrace;  Uint8  m_noOfSections;  Uint8  m_fragmentInfo;}; /** 7x4 = 28 Bytes */struct LinearSectionPtr {  Uint32 sz;  Uint32 * p;};struct SegmentedSectionPtr {  Uint32 sz;  Uint32 i;  struct SectionSegment * p;  void setNull() { p = 0;}  bool isNull() const { return p == 0;}};class NdbOut & operator <<(class NdbOut & out, SignalHeader & sh);#endif // Define of TransporterDefinitions_H

⌨️ 快捷键说明

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