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

📄 ose_transporter.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 *///****************************************************************************////  AUTHOR//      Magnus Svensson////  NAME//      OSE_Transporter////  DESCRIPTION//      A OSE_Transporter instance is created when OSE-signal communication //      shall be used (user specified). It handles connect, disconnect, //      send and receive.////////***************************************************************************/#ifndef OSE_Transporter_H#define OSE_Transporter_H#include "Transporter.hpp"#include "ose.h"class OSE_Transporter : public Transporter {  friend class OSE_Receiver;  friend class TransporterRegistry;public:    // Initialize member variables  OSE_Transporter(int prioASignalSize,		  int prioBSignalSize,		  NodeId localNodeId,		  const char * lHostName,		  NodeId remoteNodeId,		  NodeId serverNodeId,		  const char * rHostName,		  int byteorder,		  bool compression, 		  bool checksum, 		  bool signalId,		  Uint32 reportFreq = 4096);    // Disconnect, delete send buffers and receive buffer  ~OSE_Transporter();    /**   * Allocate buffers for sending and receiving   */  bool initTransporter();  /**   * Connect   */  virtual void doConnect();  /**   * Disconnect   */  virtual void doDisconnect();    Uint32 * getWritePtr(Uint32 lenBytes, Uint32 prio);  void updateWritePtr(Uint32 lenBytes, Uint32 prio);    /**   * Retrieves the contents of the send buffers, copies it into    * an OSE signal and sends it. Until the send buffers are empty   */  void doSend();  bool hasDataToSend() const {    return prioBSignal->dataSignal.length > 0;  }  protected:  /**   * Not implemented   *   OSE uses async connect/disconnect   */  virtual bool connectImpl(Uint32 timeOut){    return false;  }    /**   * Not implemented   *   OSE uses async connect/disconnect   */  virtual void disconnectImpl(){  }private:  const bool isServer;    int maxPrioBDataSize;  /**   * Remote node name   * On same machine: ndb_node1   * On remote machine: rhost/ndb_node1   **/  PROCESS  remoteNodePid;  OSATTREF remoteNodeRef;  char remoteNodeName[256];  Uint32 signalIdCounter;  int prioBSignalSize;  Uint32 * prioBInsertPtr;  union SIGNAL * prioBSignal;  struct NdbTransporterData * allocPrioASignal(Uint32 lenBytes) const;    /**   * Statistics   */  Uint32 reportFreq;  Uint32 receiveCount;  Uint64 receiveSize;  Uint32 sendCount;  Uint64 sendSize;  void initSignals();  /**   * OSE Receiver callbacks   */  void huntReceived(struct NdbTransporterHunt * sig);  bool connectReq(struct NdbTransporterConnectReq * sig);  bool connectRef(struct NdbTransporterConnectRef * sig);  bool connectConf(struct NdbTransporterConnectConf * sig);  bool disconnectOrd(struct NdbTransporterDisconnectOrd * sig);  enum OSETransporterState {    DISCONNECTED              = 0,    WAITING_FOR_HUNT          = 1,    WAITING_FOR_CONNECT_REQ   = 2,    WAITING_FOR_CONNECT_CONF  = 3,    CONNECTED                 = 4  } state;};// Define of OSE_Transporter_H#endif

⌨️ 快捷键说明

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