1 //******************************************************************* 2 // 3 // License: See top level LICENSE.txt file. 4 // 5 // Description: 6 // 7 // Contains class definition with common error codes and methods to go 8 // from code to string and string to code. 9 // 10 //************************************************************************* 11 // $Id: ossimErrorCodes.cpp 9963 2006-11-28 21:11:01Z gpotts $ 12 13 #include <ossim/base/ossimErrorCodes.h> 14 #include <ossim/base/ossimString.h> 15 16 const ossimErrorCode ossimErrorCodes::OSSIM_OK = 0; 17 const ossimErrorCode ossimErrorCodes::OSSIM_NO_ERROR = 0; 18 const ossimErrorCode ossimErrorCodes::OSSIM_WARNING = -1; 19 const ossimErrorCode ossimErrorCodes::OSSIM_ERROR = 1; 20 const ossimErrorCode ossimErrorCodes::OSSIM_ERROR_STD_PARALLEL_1 = 2; 21 const ossimErrorCode ossimErrorCodes::OSSIM_LAT_ERROR = 3; 22 const ossimErrorCode ossimErrorCodes::OSSIM_LON_ERROR = 4; 23 const ossimErrorCode ossimErrorCodes::OSSIM_NORTHING_ERROR = 5; 24 const ossimErrorCode ossimErrorCodes::OSSIM_ORIGIN_LAT_ERROR = 6; 25 const ossimErrorCode ossimErrorCodes::OSSIM_CENT_MER_ERROR = 7; 26 const ossimErrorCode ossimErrorCodes::OSSIM_A_ERROR = 8; 27 const ossimErrorCode ossimErrorCodes::OSSIM_B_ERROR = 9; 28 const ossimErrorCode ossimErrorCodes::OSSIM_A_LESS_B_ERROR = 10; 29 const ossimErrorCode ossimErrorCodes::OSSIM_FIRST_STDP_ERROR = 11; 30 const ossimErrorCode ossimErrorCodes::OSSIM_SEC_STDP_ERROR = 12; 31 const ossimErrorCode ossimErrorCodes::OSSIM_FIRST_SECOND_ERROR = 13; 32 const ossimErrorCode ossimErrorCodes::OSSIM_HEMISPHERE_ERROR = 14; 33 const ossimErrorCode ossimErrorCodes::OSSIM_EASTING_ERROR = 15; 34 const ossimErrorCode ossimErrorCodes::OSSIM_RADIUS_ERROR = 16; 35 const ossimErrorCode ossimErrorCodes::OSSIM_ORIGIN_LON_ERROR = 17; 36 const ossimErrorCode ossimErrorCodes::OSSIM_ORIENTATION_ERROR = 18; 37 const ossimErrorCode ossimErrorCodes::OSSIM_SCALE_FACTOR_ERROR = 19; 38 const ossimErrorCode ossimErrorCodes::OSSIM_ZONE_ERROR = 20; 39 const ossimErrorCode ossimErrorCodes::OSSIM_ZONE_OVERRIDE_ERROR = 21; 40 const ossimErrorCode ossimErrorCodes::OSSIM_INVALID_FILE_ERROR = 22; 41 const ossimErrorCode ossimErrorCodes::OSSIM_OPEN_FILE_ERROR = 23; 42 const ossimErrorCode ossimErrorCodes::OSSIM_WRITE_FILE_ERROR = 24; 43 const ossimErrorCode ossimErrorCodes::OSSIM_ERROR_UNKNOWN = OSSIM_INT_NAN; 44 45 ossimErrorCodes* ossimErrorCodes::theInstance = NULL; 46 ossimErrorCodes()47ossimErrorCodes::ossimErrorCodes() 48 { 49 } 50 ossimErrorCodes(const ossimErrorCodes &)51ossimErrorCodes::ossimErrorCodes(const ossimErrorCodes& /* rhs */ ) 52 { 53 } 54 operator =(const ossimErrorCodes &)55const ossimErrorCodes& ossimErrorCodes::operator=(const ossimErrorCodes&) 56 { 57 return *this; 58 } 59 ~ossimErrorCodes()60ossimErrorCodes::~ossimErrorCodes() 61 { 62 if (theInstance) 63 { 64 delete theInstance; 65 theInstance = NULL; 66 } 67 } 68 instance()69ossimErrorCodes* ossimErrorCodes::instance() 70 { 71 if (!theInstance) 72 { 73 theInstance = new ossimErrorCodes(); 74 } 75 76 return theInstance; 77 } 78 getErrorCode(const ossimString & error_string) const79ossimErrorCode ossimErrorCodes::getErrorCode(const ossimString& error_string) const 80 { 81 // Upcase... 82 ossimString str; 83 str = str.upcase(error_string); 84 85 if (str == "OSSIM_OK") 86 { 87 return ossimErrorCodes::OSSIM_OK; 88 } 89 else if (str == "OSSIM_NO_ERROR") 90 { 91 return ossimErrorCodes::OSSIM_NO_ERROR; 92 } 93 else if (str == "OSSIM_WARNING") 94 { 95 return ossimErrorCodes::OSSIM_WARNING; 96 } 97 else if (str == "OSSIM_ERROR") 98 { 99 return ossimErrorCodes::OSSIM_ERROR; 100 } 101 else if (str == "OSSIM_ERROR_STD_PARALLEL_1") 102 { 103 return ossimErrorCodes::OSSIM_ERROR_STD_PARALLEL_1; 104 } 105 else if (str == "OSSIM_LAT_ERROR") 106 { 107 return ossimErrorCodes::OSSIM_LAT_ERROR; 108 } 109 else if (str == "OSSIM_LON_ERROR") 110 { 111 return ossimErrorCodes::OSSIM_LON_ERROR; 112 } 113 else if (str == "OSSIM_NORTHING_ERROR") 114 { 115 return ossimErrorCodes::OSSIM_NORTHING_ERROR; 116 } 117 else if (str == "OSSIM_ORIGIN_LAT_ERROR") 118 { 119 return ossimErrorCodes::OSSIM_ORIGIN_LAT_ERROR; 120 } 121 else if (str == "OSSIM_CENT_MER_ERROR") 122 { 123 return ossimErrorCodes::OSSIM_CENT_MER_ERROR; 124 } 125 else if (str == "OSSIM_A_ERROR") 126 { 127 return ossimErrorCodes::OSSIM_B_ERROR; 128 } 129 else if (str == "OSSIM_A_LESS_B_ERROR") 130 { 131 return ossimErrorCodes::OSSIM_A_LESS_B_ERROR; 132 } 133 else if (str == "OSSIM_FIRST_STDP_ERROR") 134 { 135 return ossimErrorCodes::OSSIM_FIRST_STDP_ERROR; 136 } 137 else if (str == "OSSIM_SEC_STDP_ERROR") 138 { 139 return ossimErrorCodes::OSSIM_SEC_STDP_ERROR; 140 } 141 else if (str == "OSSIM_FIRST_SECOND_ERROR") 142 { 143 return ossimErrorCodes::OSSIM_FIRST_SECOND_ERROR; 144 } 145 else if (str == "OSSIM_HEMISPHERE_ERROR") 146 { 147 return ossimErrorCodes::OSSIM_HEMISPHERE_ERROR; 148 } 149 else if (str == "OSSIM_EASTING_ERROR") 150 { 151 return ossimErrorCodes::OSSIM_EASTING_ERROR; 152 } 153 else if (str == "OSSIM_RADIUS_ERROR") 154 { 155 return ossimErrorCodes::OSSIM_RADIUS_ERROR; 156 } 157 else if (str == "OSSIM_ORIGIN_LON_ERROR") 158 { 159 return ossimErrorCodes::OSSIM_ORIGIN_LON_ERROR; 160 } 161 else if (str == "OSSIM_ORIENTATION_ERROR") 162 { 163 return ossimErrorCodes::OSSIM_ORIENTATION_ERROR; 164 } 165 else if (str == "OSSIM_SCALE_FACTOR_ERROR") 166 { 167 return ossimErrorCodes::OSSIM_SCALE_FACTOR_ERROR; 168 } 169 else if (str == "OSSIM_ZONE_ERROR") 170 { 171 return ossimErrorCodes::OSSIM_ZONE_ERROR; 172 } 173 else if (str == "OSSIM_ZONE_OVERRIDE_ERROR") 174 { 175 return ossimErrorCodes::OSSIM_ZONE_OVERRIDE_ERROR; 176 } 177 else if (str == "OSSIM_INVALID_FILE_ERROR") 178 { 179 return ossimErrorCodes::OSSIM_INVALID_FILE_ERROR; 180 } 181 else if (str == "OSSIM_OPEN_FILE_ERROR") 182 { 183 return ossimErrorCodes::OSSIM_OPEN_FILE_ERROR; 184 } 185 else if (str == "OSSIM_WRITE_FILE_ERROR") 186 { 187 return ossimErrorCodes::OSSIM_WRITE_FILE_ERROR; 188 } 189 190 return OSSIM_ERROR_UNKNOWN; 191 } 192 getErrorString(ossimErrorCode error_code) const193ossimString ossimErrorCodes::getErrorString(ossimErrorCode error_code) const 194 { 195 if(error_code == OSSIM_OK) 196 { 197 // No difference between OSSIM_NO_ERROR and OSSIM_OK. 198 return ossimString("OSSIM_OK"); 199 } 200 if(error_code == OSSIM_WARNING) 201 { 202 return ossimString("OSSIM_WARNING"); 203 } 204 if(error_code == OSSIM_ERROR) 205 { 206 return ossimString("OSSIM_ERROR"); 207 } 208 if(error_code == OSSIM_ERROR_STD_PARALLEL_1) 209 { 210 return ossimString("OSSIM_ERROR_STD_PARALLEL_1"); 211 } 212 if(error_code == OSSIM_LAT_ERROR) 213 { 214 return ossimString("OSSIM_LAT_ERROR"); 215 } 216 if(error_code == OSSIM_LON_ERROR) 217 { 218 return ossimString("OSSIM_LON_ERROR"); 219 } 220 if(error_code == OSSIM_NORTHING_ERROR) 221 { 222 return ossimString("OSSIM_NORTHING_ERROR"); 223 } 224 if(error_code == OSSIM_ORIGIN_LAT_ERROR) 225 { 226 return ossimString("OSSIM_ORIGIN_LAT_ERROR"); 227 } 228 if(error_code == OSSIM_CENT_MER_ERROR) 229 { 230 return ossimString("OSSIM_CENT_MER_ERROR"); 231 } 232 if(error_code == OSSIM_A_ERROR) 233 { 234 return ossimString("OSSIM_A_ERROR"); 235 } 236 if(error_code == OSSIM_B_ERROR) 237 { 238 return ossimString("OSSIM_B_ERROR"); 239 } 240 if(error_code == OSSIM_A_LESS_B_ERROR) 241 { 242 return ossimString("OSSIM_A_LESS_B_ERROR"); 243 } 244 if(error_code == OSSIM_FIRST_STDP_ERROR) 245 { 246 return ossimString("OSSIM_FIRST_STDP_ERROR"); 247 } 248 if(error_code == OSSIM_SEC_STDP_ERROR) 249 { 250 return ossimString("OSSIM_SEC_STDP_ERROR"); 251 } 252 if(error_code == OSSIM_FIRST_SECOND_ERROR) 253 { 254 return ossimString("OSSIM_FIRST_SECOND_ERROR"); 255 } 256 if(error_code == OSSIM_HEMISPHERE_ERROR) 257 { 258 return ossimString("OSSIM_HEMISPHERE_ERROR"); 259 } 260 if(error_code == OSSIM_EASTING_ERROR) 261 { 262 return ossimString("OSSIM_EASTING_ERROR"); 263 } 264 if(error_code == OSSIM_RADIUS_ERROR) 265 { 266 return ossimString("OSSIM_RADIUS_ERROR"); 267 } 268 if(error_code == OSSIM_ORIGIN_LON_ERROR) 269 { 270 return ossimString("OSSIM_ORIGIN_LON_ERROR"); 271 } 272 if(error_code == OSSIM_ORIENTATION_ERROR) 273 { 274 return ossimString("OSSIM_ORIENTATION_ERROR"); 275 } 276 if(error_code == OSSIM_SCALE_FACTOR_ERROR) 277 { 278 return ossimString("OSSIM_SCALE_FACTOR_ERROR"); 279 } 280 if(error_code == OSSIM_ZONE_ERROR) 281 { 282 return ossimString("OSSIM_ZONE_ERROR"); 283 } 284 if(error_code == OSSIM_ZONE_OVERRIDE_ERROR) 285 { 286 return ossimString("OSSIM_ZONE_OVERRIDE_ERROR"); 287 } 288 if(error_code == OSSIM_INVALID_FILE_ERROR) 289 { 290 return ossimString("OSSIM_INVALID_FILE_ERROR"); 291 } 292 if(error_code == OSSIM_OPEN_FILE_ERROR) 293 { 294 return ossimString("OSSIM_OPEN_FILE_ERROR"); 295 } 296 if(error_code == OSSIM_WRITE_FILE_ERROR) 297 { 298 return ossimString("OSSIM_WRITE_FILE_ERROR"); 299 } 300 301 return ossimString("OSSIM_ERROR_UNKNOWN"); 302 } 303