Diana
0.8.3
|
00001 /* ----------------------------------------------------------------------------- 00002 * Diana process modelling, simulation and analysis software 00003 * Copyright (c) 2005, Michael Krasnyk 00004 * All rights reserved. 00005 * 00006 * This file is a part of Diana process modelling, simulation and analysis software 00007 * 00008 * Diana is free software; you can redistribute it and/or modify it 00009 * under the terms of the GNU General Public License as published 00010 * by the Free Software Foundation (see accompanying file LICENSE) 00011 * ----------------------------------------------------------------------------- 00012 * $Id: CapeException.hpp 8160 2009-03-16 18:36:30Z miha $ 00013 * ----------------------------------------------------------------------------- 00014 * Description: 00015 */ 00016 00017 #ifndef CAPE_EXCEPTION_HPP 00018 #define CAPE_EXCEPTION_HPP 00019 00020 #include "CapeTypes.hpp" 00021 00022 namespace Common{ 00023 00029 namespace Error { 00030 00031 00033 enum ExceptionCode { 00034 ECodeNone = 0, 00035 ECodeWarning, 00036 ECodeError, 00037 ECodePyError, 00038 ECodeRecovError, 00039 ECodeFatalError, 00040 ECodeSignal, 00041 }; 00042 00043 00049 class ECapeRoot { 00050 public: 00052 ECapeRoot(); 00053 public: 00054 Common::Types::CapeString name; 00056 }; 00057 00058 00061 class ECapeUser : public ECapeRoot { 00062 00063 public: 00065 ECapeUser(); 00066 00067 #ifndef SWIG 00068 00069 ECapeUser(ExceptionCode _code, 00070 Common::Types::CapeString _description = Common::Types::CapeStringUNDEFINED, 00071 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00072 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00073 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00074 Common::Types::CapeURL _moreInfo = Common::Types::CapeStringUNDEFINED); 00075 00077 friend std::ostream& operator<<(std::ostream & os, const ECapeUser& exc); 00078 #endif 00079 00080 public: 00081 ExceptionCode code; 00085 Common::Types::CapeString description; 00086 Common::Types::CapeString scope; 00088 Common::Types::CapeString interfaceName; 00090 Common::Types::CapeString operation; 00092 Common::Types::CapeURL moreInfo; 00095 }; 00096 00097 00100 class ECapeBoundaries { 00101 public: 00103 ECapeBoundaries(); 00104 00105 #ifndef SWIG 00106 00107 ECapeBoundaries(Common::Types::CapeDouble _lowerBound, 00108 Common::Types::CapeDouble _upperBound, 00109 Common::Types::CapeDouble _value, 00110 Common::Types::CapeString _type = Common::Types::CapeStringUNDEFINED); 00111 #endif 00112 00113 public: 00114 Common::Types::CapeDouble lowerBound; 00115 Common::Types::CapeDouble upperBound; 00116 Common::Types::CapeDouble value; 00117 Common::Types::CapeString type; 00120 }; 00121 00122 00127 class ECapeUnknown : public ECapeUser { 00128 public: 00130 ECapeUnknown(); 00131 00132 #ifndef SWIG 00133 00134 ECapeUnknown(ExceptionCode _code, 00135 Common::Types::CapeString _description, 00136 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00137 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00138 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00139 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00140 00142 friend std::ostream& operator<<(std::ostream & os, const ECapeUnknown& exc); 00143 #endif 00144 }; 00145 00150 class ECapeData : public ECapeUser { 00151 public: 00153 ECapeData(); 00154 00155 #ifndef SWIG 00156 00157 ECapeData(ExceptionCode _code, 00158 Common::Types::CapeString _description, 00159 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00160 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00161 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00162 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00163 00165 friend std::ostream& operator<<(std::ostream & os, const ECapeData& exc); 00166 #endif 00167 }; 00168 00169 00173 class ECapeLicenceError : public ECapeData { 00174 public: 00176 ECapeLicenceError(); 00177 00178 #ifndef SWIG 00179 00180 ECapeLicenceError(ExceptionCode _code, 00181 Common::Types::CapeString _description, 00182 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00183 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00184 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00185 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00186 00188 friend std::ostream& operator<<(std::ostream & os, const ECapeLicenceError& exc); 00189 #endif 00190 }; 00191 00192 00196 class ECapeBadCOParameter : public ECapeData { 00197 public: 00199 ECapeBadCOParameter(); 00200 00201 public: 00202 Common::Types::CapeString parameterName; 00204 #ifndef SWIG 00205 00206 ECapeBadCOParameter(ExceptionCode _code, 00207 Common::Types::CapeString _description, 00208 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00209 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00210 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00211 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00212 Common::Types::CapeString _parameterName = Common::Types::CapeStringUNDEFINED); 00213 00215 friend std::ostream& operator<<(std::ostream & os, const ECapeBadCOParameter& exc); 00216 #endif 00217 }; 00218 00221 class ECapeBadArgument : public ECapeData { 00222 public: 00224 ECapeBadArgument(); 00225 00226 public: 00227 Common::Types::CapeShort position; 00229 #ifndef SWIG 00230 00231 ECapeBadArgument(ExceptionCode _code, 00232 Common::Types::CapeString _description, 00233 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00234 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00235 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00236 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00237 Common::Types::CapeShort _position = 0); 00238 00240 friend std::ostream& operator<<(std::ostream & os, const ECapeBadArgument& exc); 00241 #endif 00242 }; 00243 00246 class ECapeInvalidArgument : public ECapeBadArgument { 00247 public: 00249 ECapeInvalidArgument(); 00250 00251 #ifndef SWIG 00252 00253 ECapeInvalidArgument(ExceptionCode _code, 00254 Common::Types::CapeString _description, 00255 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00256 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00257 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00258 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00259 Common::Types::CapeShort _position = 0); 00260 00262 friend std::ostream& operator<<(std::ostream & os, const ECapeInvalidArgument& exc); 00263 #endif 00264 }; 00265 00266 00268 class ECapeOutOfBounds : public ECapeBadArgument, public ECapeBoundaries { 00269 public: 00271 ECapeOutOfBounds(); 00272 00273 #ifndef SWIG 00274 00275 ECapeOutOfBounds(ExceptionCode _code, 00276 Common::Types::CapeString _description, 00277 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00278 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00279 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00280 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00281 Common::Types::CapeShort _position = 0, 00282 Common::Types::CapeDouble _lowerBound = 0.0, 00283 Common::Types::CapeDouble _upperBound = 0.0, 00284 Common::Types::CapeDouble _value = 0.0, 00285 Common::Types::CapeString _type = Common::Types::CapeStringUNDEFINED); 00286 00288 friend std::ostream& operator<<(std::ostream & os, const ECapeOutOfBounds& exc); 00289 #endif 00290 }; 00291 00292 00295 class ECapeImplementation : public ECapeUser { 00296 public: 00298 ECapeImplementation(); 00299 00300 #ifndef SWIG 00301 00302 ECapeImplementation(ExceptionCode _code, 00303 Common::Types::CapeString _description, 00304 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00305 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00306 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00307 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00308 00310 friend std::ostream& operator<<(std::ostream & os, const ECapeImplementation& exc); 00311 #endif 00312 }; 00313 00314 00319 class ECapeNoImpl : public ECapeImplementation { 00320 public: 00322 ECapeNoImpl(); 00323 00324 #ifndef SWIG 00325 public: 00327 ECapeNoImpl(ExceptionCode _code, 00328 Common::Types::CapeString _description, 00329 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00330 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00331 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00332 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00333 00335 friend std::ostream& operator<<(std::ostream & os, const ECapeNoImpl& exc); 00336 #endif 00337 }; 00338 00339 00348 class ECapeLimitedImpl : public ECapeImplementation { 00349 public: 00351 ECapeLimitedImpl(); 00352 00353 #ifndef SWIG 00354 00355 ECapeLimitedImpl(ExceptionCode _code, 00356 Common::Types::CapeString _description, 00357 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00358 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00359 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00360 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00361 00363 friend std::ostream& operator<<(std::ostream & os, const ECapeLimitedImpl& exc); 00364 #endif 00365 }; 00366 00367 00369 class ECapeComputation : public ECapeUser { 00370 public: 00372 ECapeComputation(); 00373 00374 #ifndef SWIG 00375 public: 00377 ECapeComputation(ExceptionCode _code, 00378 Common::Types::CapeString _description, 00379 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00380 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00381 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00382 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00383 00385 friend std::ostream& operator<<(std::ostream & os, const ECapeComputation& exc); 00386 #endif 00387 }; 00388 00389 00393 class ECapeOutOfResources : public ECapeUser, public ECapeBoundaries { 00394 public: 00396 ECapeOutOfResources(); 00397 00398 #ifndef SWIG 00399 00400 ECapeOutOfResources(ExceptionCode _code, 00401 Common::Types::CapeString _description, 00402 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00403 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00404 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00405 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00406 Common::Types::CapeDouble _lowerBound = 0.0, 00407 Common::Types::CapeDouble _upperBound = 0.0, 00408 Common::Types::CapeDouble _value = 0.0, 00409 Common::Types::CapeString _type = Common::Types::CapeStringUNDEFINED); 00410 00412 friend std::ostream& operator<<(std::ostream & os, const ECapeOutOfResources& exc); 00413 #endif 00414 }; 00415 00416 00420 class ECapeNoMemory : public ECapeOutOfResources { 00421 public: 00423 ECapeNoMemory(); 00424 00425 #ifndef SWIG 00426 00427 public: 00428 ECapeNoMemory(ExceptionCode _code, 00429 Common::Types::CapeString _description, 00430 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00431 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00432 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00433 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00434 Common::Types::CapeDouble _lowerBound = 0.0, 00435 Common::Types::CapeDouble _upperBound = 0.0, 00436 Common::Types::CapeDouble _value = 0.0, 00437 Common::Types::CapeString _type = Common::Types::CapeStringUNDEFINED); 00438 00440 friend std::ostream& operator<<(std::ostream & os, const ECapeNoMemory& exc); 00441 #endif 00442 }; 00443 00446 class ECapeTimeOut : public ECapeOutOfResources { 00447 public: 00449 ECapeTimeOut(); 00450 00451 #ifndef SWIG 00452 public: 00454 ECapeTimeOut(ExceptionCode _code, 00455 Common::Types::CapeString _description, 00456 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00457 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00458 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00459 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00460 Common::Types::CapeDouble _lowerBound = 0.0, 00461 Common::Types::CapeDouble _upperBound = 0.0, 00462 Common::Types::CapeDouble _value = 0.0, 00463 Common::Types::CapeString _type = Common::Types::CapeStringUNDEFINED); 00464 00466 friend std::ostream& operator<<(std::ostream & os, const ECapeTimeOut& exc); 00467 #endif 00468 }; 00469 00470 00473 class ECapeFailedInitialisation : public ECapeComputation { 00474 public: 00476 ECapeFailedInitialisation(); 00477 00478 #ifndef SWIG 00479 public: 00481 ECapeFailedInitialisation(ExceptionCode _code, 00482 Common::Types::CapeString _description, 00483 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00484 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00485 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00486 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00487 00489 friend std::ostream& operator<<(std::ostream & os, const ECapeFailedInitialisation& exc); 00490 #endif 00491 }; 00492 00493 00495 class ECapeSolvingError : public ECapeComputation { 00496 public: 00498 ECapeSolvingError(); 00499 00500 #ifndef SWIG 00501 public: 00503 ECapeSolvingError(ExceptionCode _code, 00504 Common::Types::CapeString _description, 00505 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00506 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00507 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00508 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00509 00511 friend std::ostream& operator<<(std::ostream & os, const ECapeSolvingError& exc); 00512 #endif 00513 }; 00514 00515 00520 class ECapeBadInvOrder : public ECapeComputation { 00521 public: 00523 ECapeBadInvOrder(); 00524 00525 Common::Types::CapeString requestedOperation; 00526 #ifndef SWIG 00527 public: 00529 ECapeBadInvOrder(ExceptionCode _code, 00530 Common::Types::CapeString _description, 00531 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00532 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00533 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00534 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED, 00535 Common::Types::CapeString _requestedOperation = Common::Types::CapeStringUNDEFINED); 00536 00538 friend std::ostream& operator<<(std::ostream & os, const ECapeBadInvOrder& exc); 00539 #endif 00540 }; 00541 00542 00545 class ECapeInvalidOperation : public ECapeComputation { 00546 public: 00548 ECapeInvalidOperation(); 00549 00550 #ifndef SWIG 00551 public: 00553 ECapeInvalidOperation(ExceptionCode _code, 00554 Common::Types::CapeString _description, 00555 Common::Types::CapeString _scope = Common::Types::CapeStringUNDEFINED, 00556 Common::Types::CapeString _interfaceName = Common::Types::CapeStringUNDEFINED, 00557 Common::Types::CapeString _operation = Common::Types::CapeStringUNDEFINED, 00558 Common::Types::CapeURL _moreInfo = Common::Types::CapeURLUNDEFINED); 00559 00561 friend std::ostream& operator<<(std::ostream & os, const ECapeInvalidOperation& exc); 00562 #endif 00563 }; 00564 } 00565 } 00566 00567 #endif // CAPE_EXCEPTION_HPP