Diana  0.8.3
CapeException.hpp
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