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

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. #include <GrepError.hpp>
  14. /**
  15.  * Error descriptions.
  16.  */
  17. const GrepError::ErrorDescription  GrepError::errorDescriptions[] = {
  18.   { GrepError::GE_NO_ERROR,
  19.     "No error" },
  20.   { GrepError::SUBSCRIPTION_ID_NOMEM, 
  21.     "Not enough resources to allocate the subscription" },
  22.   { GrepError::SUBSCRIPTION_ID_NOT_FOUND,
  23.     "The requested subscription (id, key) does not exist"},
  24.   { GrepError::SUBSCRIPTION_ID_NOT_UNIQUE,
  25.     "A subscription with (id, key) does already exist"},
  26.   { GrepError::SUBSCRIPTION_ID_SUMA_FAILED_CREATE,
  27.     "Suma failed to create a new subscription id"},
  28.   { GrepError::NULL_VALUE,
  29.     "NULL"},
  30.   { GrepError::SEQUENCE_ERROR,
  31.     "Error when creating or using sequence."},
  32.   { GrepError::NOSPACE_IN_POOL,
  33.     "No space left in pool when trying to seize data"},
  34.   { GrepError::SUBSCRIPTION_ID_ALREADY_EXIST,
  35.     "A subscription for this replication channel does already exist"},
  36.   { GrepError::SUBSCRIPTION_NOT_STARTED,
  37.     "No subscription is started"},
  38.   { GrepError::SUBSCRIBER_NOT_FOUND,
  39.     "The subscriber does not exist in SUMA."},
  40.   { GrepError::WRONG_NO_OF_SECTIONS,
  41.     "Something is wrong with the supplied arguments"},
  42.   { GrepError::ILLEGAL_ACTION_WHEN_STOPPING,
  43.     "Action can not be performed while channel is in stopping state"},
  44.   { GrepError::SELECTED_TABLE_NOT_FOUND, 
  45.     "The selected table was not found. "},
  46.   { GrepError::REP_APPLY_LOGRECORD_FAILED,
  47.     "Failed applying a log record (permanent error)"},
  48.   { GrepError::REP_APPLY_METARECORD_FAILED,
  49.     "Failed applying a meta record (permanent error)"},
  50.   { GrepError::REP_DELETE_NEGATIVE_EPOCH,
  51.     "Trying to delete a GCI Buffer using a negative epoch."},
  52.   { GrepError::REP_DELETE_NONEXISTING_EPOCH,
  53.     "Trying to delete a non-existing GCI Buffer."},
  54.   { GrepError::REP_NO_CONNECTED_NODES,
  55.     "There are no connected nodes in the node group."},
  56.   { GrepError::REP_DISCONNECT,
  57.     "Global Replication Server disconnected."},  
  58.   { GrepError::COULD_NOT_ALLOCATE_MEM_FOR_SIGNAL,
  59.     "Could not allocate memory for signal."},
  60.   { GrepError::REP_NOT_PROPER_TABLE,
  61.     "Specified table is not a valid table. "
  62.     "Either the format is not <db>/<schema>/<tablename> or "
  63.     "the table name is too long "},
  64.   { GrepError::REP_TABLE_ALREADY_SELECTED,
  65.     "The specified table is already selected for replication" },
  66.   { GrepError::REP_TABLE_NOT_FOUND,
  67.     "The specified table was not found" },
  68.   { GrepError::START_OF_COMPONENT_IN_WRONG_STATE,
  69.     "Component or protocol can not be started in the current state."},
  70.   { GrepError::START_ALREADY_IN_PROGRESS,
  71.     "Start of replication protocol is already in progress."},
  72.   { GrepError::ILLEGAL_STOP_EPOCH_ID,
  73.     "It is not possible to stop on the requested epoch id."},
  74.   { GrepError::ILLEGAL_USE_OF_COMMAND,
  75.     "The command cannot be executed in this state."},
  76.   { GrepError::CHANNEL_NOT_STOPPABLE,
  77.     "It is not possible to stop the in this state."},
  78.   /**
  79.    * Applier stuff
  80.    */
  81.   { GrepError::REP_APPLY_NONCOMPLETE_GCIBUFFER,
  82.     "Applier: Ordered to apply an incomplete GCI Buffer."},
  83.   { GrepError::REP_APPLY_NULL_GCIBUFFER,
  84.     "Applier: Tried to apply a NULL GCI Buffer."},
  85.   { GrepError::REP_APPLIER_START_TRANSACTION,
  86.     "Applier: Could not start a transaction."},
  87.   { GrepError::REP_APPLIER_NO_TABLE, 
  88.     "Applier: Table does not exist"},
  89.   { GrepError::REP_APPLIER_NO_OPERATION, 
  90.     "Applier: Cannot get NdbOperation record."},
  91.   { GrepError::REP_APPLIER_EXECUTE_TRANSACTION, 
  92.     "Applier: Execute transaction failed."},
  93.   { GrepError::REP_APPLIER_CREATE_TABLE,
  94.     "Applier: Create table failed."},
  95.   { GrepError::REP_APPLIER_PREPARE_TABLE,
  96.     "Applier: Prepare table for create failed."},
  97.   { GrepError::NOT_YET_IMPLEMENTED,
  98.     "Command or event not yet implemented."}
  99. };
  100. const Uint32 
  101. GrepError::noOfErrorDescs = sizeof(GrepError::errorDescriptions) /
  102.                             sizeof(GrepError::ErrorDescription);
  103. /**
  104.  * gets the corresponding error message to an err code
  105.  */  
  106. const char * 
  107. GrepError::getErrorDesc(GrepError::GE_Code err) {
  108.   
  109.   for(Uint32 i = 0; i<noOfErrorDescs; i++){
  110.     if(err == errorDescriptions[i].errCode){
  111.       return errorDescriptions[i].name;
  112.     }
  113.   }
  114.   return 0;
  115. }