NodeInfo.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef NODE_INFO_HPP
  14. #define NODE_INFO_HPP
  15. #include <NdbOut.hpp>
  16. #include <mgmapi_config_parameters.h>
  17. class NodeInfo {
  18. public:
  19.   NodeInfo();
  20.   /**
  21.    * NodeType
  22.    */
  23.   enum NodeType {
  24.     DB  = NODE_TYPE_DB,      ///< Database node
  25.     API = NODE_TYPE_API,      ///< NDB API node
  26.     MGM = NODE_TYPE_MGM,      ///< Management node  (incl. NDB API)
  27.     REP = NODE_TYPE_REP,      ///< Replication node (incl. NDB API)
  28.     INVALID = 255 ///< Invalid type
  29.   };
  30.   NodeType getType() const;
  31.   
  32.   Uint32 m_version;       ///< Node version
  33.   Uint32 m_signalVersion; ///< Signal version
  34.   Uint32 m_type;          ///< Node type
  35.   Uint32 m_connectCount;  ///< No of times connected
  36.   bool   m_connected;     ///< Node is connected
  37.   
  38.   friend NdbOut & operator<<(NdbOut&, const NodeInfo&); 
  39. };
  40. inline
  41. NodeInfo::NodeInfo(){
  42.   m_version = 0;
  43.   m_signalVersion = 0;
  44.   m_type = INVALID;
  45.   m_connectCount = 0;
  46. }
  47. inline
  48. NodeInfo::NodeType
  49. NodeInfo::getType() const {
  50.   return (NodeType)m_type;
  51. }
  52. inline
  53. NdbOut &
  54. operator<<(NdbOut& ndbout, const NodeInfo & info){
  55.   ndbout << "[NodeInfo: ";
  56.   switch(info.m_type){
  57.   case NodeInfo::DB:
  58.     ndbout << "DB";
  59.     break;
  60.   case NodeInfo::API:
  61.     ndbout << "API";
  62.     break;
  63.   case NodeInfo::MGM:
  64.     ndbout << "MGM";
  65.     break;
  66.   case NodeInfo::REP:
  67.     ndbout << "REP";
  68.     break;
  69.   case NodeInfo::INVALID:
  70.     ndbout << "INVALID";
  71.     break;
  72.   default:
  73.     ndbout << "<Unknown: " << info.m_type << ">";
  74.     break;
  75.   }
  76.   ndbout << " version: " << info.m_version
  77.  << " sig. version; " << info.m_signalVersion
  78.  << " connect count: " << info.m_connectCount
  79.  << "]";
  80.   return ndbout;
  81. }
  82. #endif