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

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 OSE_SIGNALS_HPP
  14. #define OSE_SIGNALS_HPP
  15. #include <ose.h>
  16. #include <kernel_types.h>
  17. #define NDB_TRANSPORTER_SIGBASE  3000
  18.    
  19. #define NDB_TRANSPORTER_DATA           (NDB_TRANSPORTER_SIGBASE + 1)  /* !-SIGNO(struct NdbTransporterData)-! */  
  20. #define NDB_TRANSPORTER_HUNT           (NDB_TRANSPORTER_SIGBASE + 2)  /* !-SIGNO(struct NdbTransporterHunt)-! */  
  21. #define NDB_TRANSPORTER_CONNECT_REQ    (NDB_TRANSPORTER_SIGBASE + 3)  /* !-SIGNO(struct NdbTransporterConnectReq)-! */  
  22. #define NDB_TRANSPORTER_CONNECT_REF    (NDB_TRANSPORTER_SIGBASE + 4)  /* !-SIGNO(struct NdbTransporterConnectRef)-! */  
  23. #define NDB_TRANSPORTER_CONNECT_CONF   (NDB_TRANSPORTER_SIGBASE + 5)  /* !-SIGNO(struct NdbTransporterConnectConf)-! */  
  24. #define NDB_TRANSPORTER_DISCONNECT_ORD (NDB_TRANSPORTER_SIGBASE + 6)  /* !-SIGNO(struct NdbTransporterDisconnectOrd)-! */  
  25. #define NDB_TRANSPORTER_PRIO_A         (NDB_TRANSPORTER_SIGBASE + 7)
  26. inline
  27. const char *
  28. sigNo2String(SIGSELECT sigNo){
  29.   switch(sigNo){
  30.   case NDB_TRANSPORTER_PRIO_A:
  31.     return "PRIO_A_DATA";
  32.     break;
  33.   case NDB_TRANSPORTER_DATA:
  34.     return "PRIO_B_DATA";
  35.     break;
  36.   case NDB_TRANSPORTER_HUNT:
  37.     return "HUNT";
  38.     break;
  39.   case NDB_TRANSPORTER_CONNECT_REQ:
  40.     return "CONNECT_REQ";
  41.     break;
  42.   case NDB_TRANSPORTER_CONNECT_REF:
  43.     return "CONNECT_REF";
  44.     break;
  45.   case NDB_TRANSPORTER_CONNECT_CONF:
  46.     return "CONNECT_CONF";
  47.     break;
  48.   case NDB_TRANSPORTER_DISCONNECT_ORD:
  49.     return "DISCONNECT_ORD";
  50.     break;
  51.   }
  52.   return "UNKNOWN";
  53. }
  54. struct NdbTransporterData
  55. {
  56.   SIGSELECT sigNo;
  57.   Uint32 sigId; // Sequence number for this signal
  58.   Uint32 senderNodeId;
  59.   Uint32 length;
  60.   Uint32 data[1];
  61. };
  62. struct NdbTransporterData_PrioA
  63. {
  64.   SIGSELECT sigNo;
  65.   Uint32 sigId; // Sequence number for this signal
  66.   Uint32 senderNodeId;
  67.   Uint32 length;
  68.   Uint32 data[1];
  69. };
  70. struct NdbTransporterHunt
  71. {
  72.   SIGSELECT sigNo;
  73.   NodeId remoteNodeId;
  74. };
  75. struct NdbTransporterConnectReq
  76. {
  77.   SIGSELECT sigNo;
  78.   NodeId remoteNodeId;
  79.   NodeId senderNodeId;
  80. };
  81. struct NdbTransporterConnectConf
  82. {
  83.   SIGSELECT sigNo;
  84.   NodeId remoteNodeId;
  85.   NodeId senderNodeId;
  86. };
  87. struct NdbTransporterConnectRef
  88. {
  89.   SIGSELECT sigNo;
  90.   NodeId remoteNodeId;
  91.   NodeId senderNodeId;
  92.   Uint32 reason;
  93.   /**
  94.    * Node is not accepting connections
  95.    */
  96.   static const Uint32 INVALID_STATE = 1;
  97. };
  98. struct NdbTransporterDisconnectOrd
  99. {
  100.   SIGSELECT sigNo;
  101.   NodeId senderNodeId;
  102.   Uint32 reason;
  103.   /**
  104.    * Process died
  105.    */
  106.   static const Uint32 PROCESS_DIED = 1;
  107.   
  108.   /**
  109.    * Ndb disconnected
  110.    */
  111.   static const Uint32 NDB_DISCONNECT = 2;
  112. };
  113. union SIGNAL 
  114. {
  115.   SIGSELECT sigNo;
  116.   struct NdbTransporterData          dataSignal;
  117.   struct NdbTransporterData          prioAData;
  118.   struct NdbTransporterHunt          ndbHunt;
  119.   struct NdbTransporterConnectReq    ndbConnectReq;
  120.   struct NdbTransporterConnectRef    ndbConnectRef;
  121.   struct NdbTransporterConnectConf   ndbConnectConf;
  122.   struct NdbTransporterDisconnectOrd ndbDisconnect;
  123. };
  124. #endif