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: IDianaParameter.hpp 8160 2009-03-16 18:36:30Z miha $ 00013 * ----------------------------------------------------------------------------- 00014 * Description: 00015 */ 00016 00017 #ifndef IDIANA_PARAMETER_HPP 00018 #define IDIANA_PARAMETER_HPP 00019 00020 #include <CapeOpen.hpp> 00021 #include <Basic/DianaArray.hpp> 00022 00023 namespace Diana { 00024 00025 typedef Diana::array<Common::Parameter::ICapeParameter*> DianaArrayParameter; 00026 00031 class IDianaStateSpec : virtual public Common::Parameter::ICapeRealParameterSpec { 00032 public: 00034 virtual Common::Types::CapeDouble AbsoluteError() const 00035 throw (Common::Error::ECapeUnknown) = 0; 00036 }; 00037 00042 class IDianaArrayParameterSpec : public Common::Parameter::ICapeParameterSpec{ 00043 #ifndef SWIG 00044 00045 friend std::ostream& operator<<(std::ostream& out_file, const IDianaArrayParameterSpec& pspec); 00046 #endif 00047 public: 00049 virtual const DianaArrayParameter& ParametersArray() const 00050 throw (Common::Error::ECapeUnknown) = 0; 00051 00059 virtual Common::Types::CapeBoolean Validate(const Diana::DianaArray& value, 00060 Common::Types::CapeString& message) 00061 throw (Common::Error::ECapeUnknown, 00062 Common::Error::ECapeInvalidArgument, 00063 Common::Error::ECapeNoImpl) = 0; 00064 }; 00065 00070 class IDianaArrayRealParameterSpec : public Common::Parameter::ICapeParameterSpec{ 00071 #ifndef SWIG 00072 00073 friend std::ostream& operator<<(std::ostream& os, const IDianaArrayRealParameterSpec& pspec); 00074 #endif 00075 public: 00077 virtual Diana::DianaArray DefaultValue() const throw (Common::Error::ECapeUnknown) = 0; 00078 00080 virtual Diana::DianaArray LowerBound() const throw (Common::Error::ECapeUnknown) = 0; 00081 00083 virtual Diana::DianaArray UpperBound() const throw (Common::Error::ECapeUnknown) = 0; 00084 00092 virtual Common::Types::CapeBoolean Validate(Diana::DianaArray value, 00093 Common::Types::CapeString& message) 00094 throw (Common::Error::ECapeUnknown, 00095 Common::Error::ECapeInvalidArgument, 00096 Common::Error::ECapeNoImpl) = 0; 00097 }; 00098 00103 class IDianaArrayStringParameterSpec : public Common::Parameter::ICapeParameterSpec{ 00104 #ifndef SWIG 00105 00106 friend std::ostream& operator<<(std::ostream& os, const IDianaArrayStringParameterSpec& pspec); 00107 #endif 00108 public: 00112 virtual const Common::Types::CapeArrayString& DefaultValue() const 00113 throw (Common::Error::ECapeUnknown) = 0; 00114 00118 virtual const Common::Types::CapeArrayString& OptionList() const 00119 throw (Common::Error::ECapeUnknown) = 0; 00120 00123 virtual Common::Types::CapeBoolean RestrictedToList() const 00124 throw (Common::Error::ECapeUnknown) = 0; 00125 00133 virtual Common::Types::CapeBoolean Validate(Common::Types::CapeString value, Common::Types::CapeString& message) 00134 throw (Common::Error::ECapeUnknown, 00135 Common::Error::ECapeInvalidArgument, 00136 Common::Error::ECapeNoImpl) = 0; 00137 }; 00138 }; 00139 00140 #endif // IDIANA_PARAMETER_HPP 00141