ndberrhnd.cpp

来自「MySQL数据库开发源码 值得一看哦」· C++ 代码 · 共 493 行 · 第 1/2 页

CPP
493
字号
/* 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 */#if defined NDB_OSE || defined NDB_SOFTOSE#include <NdbOut.hpp>#include <ndb_types.h>#include "ose.h"#include "ose_err.h"#include "osetypes.h"#define BUFSIZE 100typedef struct {  char header1[BUFSIZE];  char header2[BUFSIZE];  char error_code_line[BUFSIZE];  char subcode_line[BUFSIZE];  char product_line[BUFSIZE];  char header_file_line[BUFSIZE];  char extra_line[BUFSIZE];  char user_called_line[BUFSIZE];  char current_process_id_line[BUFSIZE];  char current_process_name_line[BUFSIZE];  char file_line[BUFSIZE];  char line_line[BUFSIZE];  char err_hnd_file[BUFSIZE];} Error_message;char assert_line[BUFSIZE];char unknown_signal_line[BUFSIZE];char signal_number_line[BUFSIZE];char sender_line[BUFSIZE];char receiver_line[BUFSIZE];extern "C" OSBOOLEAN ndb_err_hnd(bool user_called, 				 Uint32 error_code,				 Uint32 extra){  static  Error_message error_message;  bool error_handled;  Uint32  subcode;    char* subcode_mnemonic;  char* product_name;  char* file_name;     /*The subcode (bit 16 - 30) is extracted from error_code */  subcode = (error_code & 0x7fff0000) >> 16;    if (user_called) {    switch (subcode) {    case 0x0050 :      subcode_mnemonic= "OSE_PRH_PLS";      product_name=     "Program Loader";      file_name =       "prherr.h";      break;    case 0x0051 :      subcode_mnemonic = "OSE_PRH_START_PRH";      product_name=      "start_prh";      file_name= "       start_prh.c";      break;    case 0x0052 :      subcode_mnemonic= "OSE_PRH_ASF";      product_name=     "Archive Server";      file_name =       "prherr.h";      break;    case 0x0058 :    case 0x4058 :    case 0x3fff :    case 0x8058 :      subcode_mnemonic= "OSE_MMS_EBASE";      product_name=     "MMS";      file_name=        "mms_err.h";      break;      /*Link Handler G3***************************************/    case 0x0060 :    case 0x8060 :      subcode_mnemonic= "OSE_GLH_EBASE";      product_name=     "General Link Handler";      file_name=        "glherr.h";      break;    case 0x0064 :    case 0x8064 :       subcode_mnemonic= "OSE_GPL_EBASE";      product_name=     "General Protocol Link Handler";      file_name=        "gplerr.h";      break;    case 0x0066 :    case 0x8066 :      subcode_mnemonic= "OSE_UDPPDR_EBASE";      product_name=     "UDP driver for GPL";      file_name=        "udppdrerr.h";      break;    case 0x0067 :    case 0x8067 :      subcode_mnemonic= "OSE_SERPDR_EBASE";      product_name=     "Serial driver for GPL";      file_name=        "serpdrerr.h";      break;    case 0x0068 :    case 0x8068 :      subcode_mnemonic= "OSE_ETHPDR_EBASE";      product_name=     "Ethernet driver for GPL";      file_name=        "ethpdrerr.h";      break;      /*Link handler G4***************************************/    case 0x0061 :      subcode_mnemonic= "OSE_OTL_EBASE";      product_name=     "OSE Transport Layer";      file_name=        "otlerr.h";      break;    case 0x0062 :      subcode_mnemonic= "OSE_LALUDP_EBASE";      product_name=     "Link Adaption Layer for UDP";      file_name=        "header file unknown";      break;      /*Internet Utilities************************************/    case 0x0069 :      subcode_mnemonic= "OSE_TFTPD";      product_name=     "TFTP server";      file_name=        "inetutilerr.h";      break;    case 0x006a :      subcode_mnemonic= "OSE_TELUDPD";      product_name=     "TELNET/UDP server";      file_name=        "inetutilerr.h";      break;    case 0x006b :      subcode_mnemonic= "OSE_FTPD";      product_name=     "FTP server";      file_name=        "inetutilerr.h";      break;    case 0x006c :      subcode_mnemonic= "OSE_TELNETD";      product_name=     "TELNET server";      file_name=        "inetutilerr.h";      break;    case 0x006d :      subcode_mnemonic= "OSE_SURFER";      product_name=     "OSE System Surfer";      file_name=        "inetutilerr.h";      break;    case 0x006e :      subcode_mnemonic= "OSE_BOOTP";      product_name=     "BOOTP client";      file_name=        "inetutilerr.h";      break;    case 0x006f :      switch((error_code & 0x0000f000)){      case 0x00000000 :        subcode_mnemonic= "OSE_RES";        product_name=     "DNS resolver";        file_name=        "inetutilerr.h";           break;      case 0x00001000 :        subcode_mnemonic= "OSE_DHCPC";        product_name=     "DHCP client";        file_name=        "inetutilerr.h";        break;      case 0x00002000 :        subcode_mnemonic= "OSE_FTP";        product_name=     "FTP client";        file_name=        "inetutilerr.h";        break;      default :        subcode_mnemonic= "Unknown error";        product_name=     "unknown product";        file_name =       "header file unknown";        break;      }      break;    case 0x00c2 :      subcode_mnemonic= "OSE_DNS";      product_name=     "DNS server";      file_name=        "dns_err.h";      break;      /*INET**************************/    case 0x0070 :      subcode_mnemonic= "INET_ERRBASE";      product_name=     "Internet Protocols (INET)";      file_name=        "ineterr.h";      break;    case 0x0071 :      subcode_mnemonic= "WEBS_ERRBASE";      product_name=     "Web Server (WEBS)";      file_name=        "webserr.h";      break;    case 0x0072 :      subcode_mnemonic= "SNMP";      product_name=     "SNMP";      file_name=        "header file unknown";      break;    case 0x0073 :      subcode_mnemonic= "STP_BRIDGE";      product_name=     "STP bridge";      file_name=        "header file unknown";      break;    case 0x0200 :    case 0x0201 :    case 0x0202 :    case 0x0203 :    case 0x0204 :    case 0x0205 :    case 0x0206 :    case 0x0207 :    case 0x0208 :    case 0x0209 :    case 0x020a :    case 0x020b :    case 0x020c :    case 0x020d :    case 0x020e :    case 0x020f :      subcode_mnemonic = "INETINIT_ERR_BASE";      product_name =     "INET";      file_name =        "startinet.c";      break;      /*Miscellanous******************************************/    case 0x0082 :      subcode_mnemonic= "OSE_HEAP_EBASE";      product_name=     "Heap Manager";      file_name=        "heap_err.h";      break;    case 0x0088 :      subcode_mnemonic= "OSE_BSP";      product_name=     "Board Support Package";      file_name=        "bsperr.h";      break;    case 0x008a :      subcode_mnemonic= "OSE_TOSV_EBASE";

⌨️ 快捷键说明

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