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: DianaParameter.hpp 8160 2009-03-16 18:36:30Z miha $ 00013 * ----------------------------------------------------------------------------- 00014 * Description: 00015 */ 00016 00017 #ifndef DIANA_PARAMETER_H 00018 #define DIANA_PARAMETER_H 00019 00020 #include <CapeOpen.hpp> 00021 #include <Diana/IDianaParameter.hpp> 00022 00023 namespace Diana{ 00024 00028 class DianaRealParameterSpec : virtual public Common::Parameter::ICapeRealParameterSpec { 00029 public: 00031 DianaRealParameterSpec(const Common::Types::CapeString& name, 00032 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00033 Common::Types::CapeDouble _defaultValue=0.0, 00034 Common::Types::CapeDouble _lowerBound=0.0, 00035 Common::Types::CapeDouble _upperBound=0.0); 00036 00038 virtual Common::Identification::ICapeIdentification* clone() 00039 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00040 00042 const Common::Types::CapeString& GetComponentName() const 00043 throw (Common::Error::ECapeUnknown); 00044 00047 void SetComponentName(const Common::Types::CapeString& _name) 00048 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00049 00051 const Common::Types::CapeString& GetComponentDescription() const 00052 throw (Common::Error::ECapeUnknown); 00053 00056 void SetComponentDescription(const Common::Types::CapeString& _description) 00057 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00058 00060 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00061 00067 Common::Types::CapeVariant Dimensionality() const 00068 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00069 00071 Common::Types::CapeDouble DefaultValue() const throw (Common::Error::ECapeUnknown); 00072 00074 void setDefaultValue(Common::Types::CapeDouble _val); 00075 00077 Common::Types::CapeDouble LowerBound() const throw (Common::Error::ECapeUnknown); 00078 00080 void setLowerBound(Common::Types::CapeDouble lb); 00081 00083 Common::Types::CapeDouble UpperBound() const throw (Common::Error::ECapeUnknown); 00084 00086 void setUpperBound(Common::Types::CapeDouble ub); 00087 00095 Common::Types::CapeBoolean Validate(Common::Types::CapeDouble value, 00096 Common::Types::CapeString& message) 00097 throw (Common::Error::ECapeUnknown, 00098 Common::Error::ECapeInvalidArgument, 00099 Common::Error::ECapeNoImpl); 00100 00101 protected: 00102 Common::Types::CapeString name; 00103 Common::Types::CapeString description; 00104 00105 Common::Types::CapeDouble defaultValue; 00106 Common::Types::CapeDouble lowerBound; 00107 Common::Types::CapeDouble upperBound; 00108 }; 00109 00113 class DianaStateSpec : public DianaRealParameterSpec, public IDianaStateSpec{ 00114 public: 00116 DianaStateSpec(const Common::Types::CapeString& name, 00117 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00118 Common::Types::CapeDouble _defaultValue=0.0, 00119 Common::Types::CapeDouble _lowerBound=0.0, 00120 Common::Types::CapeDouble _upperBound=0.0, 00121 Common::Types::CapeDouble _absoluteError=1.0e-9); 00122 00124 Common::Identification::ICapeIdentification* clone() 00125 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00126 00128 Common::Types::CapeDouble AbsoluteError() const 00129 throw (Common::Error::ECapeUnknown); 00130 00132 void setAbsoluteError(Common::Types::CapeDouble _absoluteError); 00133 00134 protected: 00135 Common::Types::CapeDouble absoluteError; 00136 }; 00137 00141 class DianaIntegerParameterSpec : public Common::Parameter::ICapeIntegerParameterSpec { 00142 public: 00144 DianaIntegerParameterSpec(const Common::Types::CapeString& name, 00145 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00146 Common::Types::CapeLong _defaultValue=0, 00147 Common::Types::CapeLong _lowerBound=0, 00148 Common::Types::CapeLong _upperBound=0); 00149 00151 Common::Identification::ICapeIdentification* clone() 00152 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00153 00155 const Common::Types::CapeString& GetComponentName() const 00156 throw (Common::Error::ECapeUnknown); 00157 00160 void SetComponentName(const Common::Types::CapeString& _name) 00161 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00162 00164 const Common::Types::CapeString& GetComponentDescription() const 00165 throw (Common::Error::ECapeUnknown); 00166 00169 void SetComponentDescription(const Common::Types::CapeString& _description) 00170 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00171 00173 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00174 00180 Common::Types::CapeVariant Dimensionality() const 00181 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00182 00184 Common::Types::CapeLong DefaultValue() const throw (Common::Error::ECapeUnknown); 00185 00187 void setDefaultValue(Common::Types::CapeLong _val); 00188 00189 00191 Common::Types::CapeLong LowerBound() const throw (Common::Error::ECapeUnknown); 00192 00194 void setLowerBound(Common::Types::CapeLong lb); 00195 00197 Common::Types::CapeLong UpperBound() const throw (Common::Error::ECapeUnknown); 00198 00200 void setUpperBound(Common::Types::CapeLong ub); 00201 00202 00210 Common::Types::CapeBoolean Validate(Common::Types::CapeLong value, 00211 Common::Types::CapeString& message) 00212 throw (Common::Error::ECapeUnknown, 00213 Common::Error::ECapeInvalidArgument, 00214 Common::Error::ECapeNoImpl); 00215 00216 protected: 00217 Common::Types::CapeString name; 00218 Common::Types::CapeString description; 00219 00220 Common::Types::CapeLong defaultValue; 00221 Common::Types::CapeLong lowerBound; 00222 Common::Types::CapeLong upperBound; 00223 }; 00224 00225 00229 class DianaBooleanParameterSpec : public Common::Parameter::ICapeBooleanParameterSpec { 00230 public: 00232 DianaBooleanParameterSpec(const Common::Types::CapeString& name, 00233 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00234 Common::Types::CapeBoolean _defaultValue=false); 00235 00237 Common::Identification::ICapeIdentification* clone() 00238 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00239 00241 const Common::Types::CapeString& GetComponentName() const 00242 throw (Common::Error::ECapeUnknown); 00243 00246 void SetComponentName(const Common::Types::CapeString& _name) 00247 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00248 00250 const Common::Types::CapeString& GetComponentDescription() const 00251 throw (Common::Error::ECapeUnknown); 00252 00255 void SetComponentDescription(const Common::Types::CapeString& _description) 00256 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00257 00259 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00260 00266 Common::Types::CapeVariant Dimensionality() const 00267 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00268 00270 Common::Types::CapeBoolean DefaultValue() const throw (Common::Error::ECapeUnknown); 00272 void setDefaultValue(Common::Types::CapeBoolean _val); 00273 00274 00282 Common::Types::CapeBoolean Validate(Common::Types::CapeBoolean value, 00283 Common::Types::CapeString& message) 00284 throw (Common::Error::ECapeUnknown, 00285 Common::Error::ECapeInvalidArgument, 00286 Common::Error::ECapeNoImpl); 00287 00288 protected: 00289 Common::Types::CapeString name; 00290 Common::Types::CapeString description; 00291 00292 Common::Types::CapeBoolean defaultValue; 00293 }; 00294 00298 class DianaPointerParameterSpec : public Common::Parameter::ICapePointerParameterSpec { 00299 public: 00301 DianaPointerParameterSpec(const Common::Types::CapeString& name, 00302 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00303 Common::Types::CapePointer _defaultValue=NULL); 00304 00306 Common::Identification::ICapeIdentification* clone() 00307 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00308 00310 const Common::Types::CapeString& GetComponentName() const 00311 throw (Common::Error::ECapeUnknown); 00312 00315 void SetComponentName(const Common::Types::CapeString& _name) 00316 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00317 00319 const Common::Types::CapeString& GetComponentDescription() const 00320 throw (Common::Error::ECapeUnknown); 00321 00324 void SetComponentDescription(const Common::Types::CapeString& _description) 00325 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00326 00328 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00329 00335 Common::Types::CapeVariant Dimensionality() const 00336 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00337 00339 Common::Types::CapePointer DefaultValue() const throw (Common::Error::ECapeUnknown); 00340 00348 Common::Types::CapeBoolean Validate(Common::Types::CapePointer value, 00349 Common::Types::CapeString& message) 00350 throw (Common::Error::ECapeUnknown, 00351 Common::Error::ECapeInvalidArgument, 00352 Common::Error::ECapeNoImpl); 00353 00354 protected: 00355 Common::Types::CapeString name; 00356 Common::Types::CapeString description; 00357 00358 Common::Types::CapePointer defaultValue; 00359 }; 00360 00361 00365 class DianaOptionParameterSpec : public Common::Parameter::ICapeOptionParameterSpec { 00366 public: 00368 DianaOptionParameterSpec(const Common::Types::CapeString& name, 00369 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED); 00370 00372 DianaOptionParameterSpec(const Common::Types::CapeString& name, 00373 const Common::Types::CapeString& description, 00374 const Common::Types::CapeString& _defaultValue, 00375 const Common::Types::CapeArrayString& _optionList); 00376 00378 Common::Identification::ICapeIdentification* clone() 00379 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00380 00382 const Common::Types::CapeString& GetComponentName() const 00383 throw (Common::Error::ECapeUnknown); 00384 00387 void SetComponentName(const Common::Types::CapeString& _name) 00388 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00389 00391 const Common::Types::CapeString& GetComponentDescription() const 00392 throw (Common::Error::ECapeUnknown); 00393 00396 void SetComponentDescription(const Common::Types::CapeString& _description) 00397 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00398 00400 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00401 00407 Common::Types::CapeVariant Dimensionality() const 00408 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00409 00413 const Common::Types::CapeString& DefaultValue() const throw (Common::Error::ECapeUnknown); 00414 00418 const Common::Types::CapeArrayString& OptionList() const throw (Common::Error::ECapeUnknown); 00419 00422 Common::Types::CapeBoolean RestrictedToList() const throw (Common::Error::ECapeUnknown); 00423 00431 Common::Types::CapeBoolean Validate(Common::Types::CapeString value, Common::Types::CapeString& message) 00432 throw (Common::Error::ECapeUnknown, 00433 Common::Error::ECapeInvalidArgument, 00434 Common::Error::ECapeNoImpl); 00435 00436 protected: 00437 Common::Types::CapeString name; 00438 Common::Types::CapeString description; 00439 00440 Common::Types::CapeString defaultValue; 00441 Common::Types::CapeArrayString optionList; 00442 Common::Types::CapeBoolean bRestricted; 00443 }; 00444 00448 class DianaArrayParameterSpec : virtual public Diana::IDianaArrayParameterSpec { 00449 public: 00451 DianaArrayParameterSpec(const Common::Types::CapeString& name, 00452 const Common::Types::CapeString& description, 00453 const Diana::DianaArrayParameter& pointers, 00454 const Common::Types::CapeArrayLong& idxLowerBounds); 00456 Common::Identification::ICapeIdentification* clone() 00457 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00458 00460 const Common::Types::CapeString& GetComponentName() const 00461 throw (Common::Error::ECapeUnknown); 00462 00465 void SetComponentName(const Common::Types::CapeString& _name) 00466 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00467 00469 const Common::Types::CapeString& GetComponentDescription() const 00470 throw (Common::Error::ECapeUnknown); 00471 00474 void SetComponentDescription(const Common::Types::CapeString& _description) 00475 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00476 00478 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00479 00481 const Common::Types::CapeArrayLong& GetIdxLowerBounds() const; 00482 00488 Common::Types::CapeVariant Dimensionality() const 00489 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00490 00492 const Diana::DianaArrayParameter& ParametersArray() const 00493 throw (Common::Error::ECapeUnknown); 00494 00502 Common::Types::CapeBoolean Validate(const Diana::DianaArray& value, 00503 Common::Types::CapeString& message) 00504 throw (Common::Error::ECapeUnknown, 00505 Common::Error::ECapeInvalidArgument, 00506 Common::Error::ECapeNoImpl); 00507 00508 protected: 00509 Common::Types::CapeString name; 00510 Common::Types::CapeString description; 00511 00512 00513 DianaArrayParameter ptrParameters; 00514 Common::Types::CapeArrayLong idxLowerBounds; 00515 }; 00516 00517 #ifndef SWIG 00518 00521 class DianaArrayRealParameterSpec : virtual public IDianaArrayRealParameterSpec { 00522 public: 00523 00525 DianaArrayRealParameterSpec(const Common::Types::CapeString& name, 00526 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00527 Diana::DianaArray _defaultValue=Diana::DianaArray(), 00528 Diana::DianaArray _lowerBound=Diana::DianaArray(), 00529 Diana::DianaArray _upperBound=Diana::DianaArray()); 00530 00532 Common::Identification::ICapeIdentification* clone() 00533 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00534 00536 const Common::Types::CapeString& GetComponentName() const 00537 throw (Common::Error::ECapeUnknown); 00538 00541 void SetComponentName(const Common::Types::CapeString& _name) 00542 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00543 00545 const Common::Types::CapeString& GetComponentDescription() const 00546 throw (Common::Error::ECapeUnknown); 00547 00550 void SetComponentDescription(const Common::Types::CapeString& _description) 00551 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00552 00554 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00555 00561 Common::Types::CapeVariant Dimensionality() const 00562 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00563 00565 Diana::DianaArray DefaultValue() const throw (Common::Error::ECapeUnknown); 00566 00568 void setDefaultValue(const Diana::DianaArray& _val); 00569 00571 Diana::DianaArray LowerBound() const throw (Common::Error::ECapeUnknown); 00572 00574 void setLowerBound(const Diana::DianaArray& lb); 00575 00577 Diana::DianaArray UpperBound() const throw (Common::Error::ECapeUnknown); 00578 00580 void setUpperBound(const Diana::DianaArray& ub); 00581 00589 Common::Types::CapeBoolean Validate(Diana::DianaArray value, 00590 Common::Types::CapeString& message) 00591 throw (Common::Error::ECapeUnknown, 00592 Common::Error::ECapeInvalidArgument, 00593 Common::Error::ECapeNoImpl); 00594 00595 protected: 00596 Common::Types::CapeString name; 00597 Common::Types::CapeString description; 00598 00599 Diana::DianaArray defaultValue; 00600 Diana::DianaArray lowerBound; 00601 Diana::DianaArray upperBound; 00602 }; 00603 #endif 00604 00609 class DianaArrayStringParameterSpec : public IDianaArrayStringParameterSpec{ 00610 public: 00612 DianaArrayStringParameterSpec(const Common::Types::CapeString& name, 00613 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED); 00614 00616 DianaArrayStringParameterSpec(const Common::Types::CapeString& name, 00617 const Common::Types::CapeString& description, 00618 const Common::Types::CapeArrayString& _defaultValue, 00619 const Common::Types::CapeArrayString& _optionList); 00620 00622 Common::Identification::ICapeIdentification* clone() 00623 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00624 00626 const Common::Types::CapeString& GetComponentName() const 00627 throw (Common::Error::ECapeUnknown); 00628 00631 void SetComponentName(const Common::Types::CapeString& _name) 00632 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00633 00635 const Common::Types::CapeString& GetComponentDescription() const 00636 throw (Common::Error::ECapeUnknown); 00637 00640 void SetComponentDescription(const Common::Types::CapeString& _description) 00641 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00642 00644 Common::Parameter::CapeParamType Type() const throw (Common::Error::ECapeUnknown); 00645 00651 Common::Types::CapeVariant Dimensionality() const 00652 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00653 00657 const Common::Types::CapeArrayString& DefaultValue() const throw (Common::Error::ECapeUnknown); 00658 00662 const Common::Types::CapeArrayString& OptionList() const throw (Common::Error::ECapeUnknown); 00663 00666 Common::Types::CapeBoolean RestrictedToList() const throw (Common::Error::ECapeUnknown); 00667 00675 Common::Types::CapeBoolean Validate(Common::Types::CapeString value, Common::Types::CapeString& message) 00676 throw (Common::Error::ECapeUnknown, 00677 Common::Error::ECapeInvalidArgument, 00678 Common::Error::ECapeNoImpl); 00679 00680 protected: 00681 Common::Types::CapeString name; 00682 Common::Types::CapeString description; 00683 00684 Common::Types::CapeArrayString defaultValue; 00685 Common::Types::CapeArrayString optionList; 00686 Common::Types::CapeBoolean bRestricted; 00687 }; 00688 00692 class DianaNLPRealParameterSpec : public Diana::DianaRealParameterSpec, public Common::Parameter::ICapeNLPRealParameterSpec { 00693 public: 00695 DianaNLPRealParameterSpec(const Common::Types::CapeString& name, 00696 const Common::Types::CapeString& description=Common::Types::CapeStringUNDEFINED, 00697 Common::Types::CapeDouble _defaultValue=0.0, 00698 Common::Types::CapeDouble _lowerBound=0.0, 00699 Common::Types::CapeDouble _upperBound=0.0, 00700 Common::Types::CapeDouble _precision=0.001); 00701 00702 DianaNLPRealParameterSpec(const DianaRealParameterSpec& _realSpec, 00703 Common::Types::CapeDouble _precision=0.001); 00704 00706 Common::Identification::ICapeIdentification* clone() 00707 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00708 00710 void setPrecision(Common::Types::CapeDouble _precision); 00711 00713 Common::Types::CapeDouble Precision() const 00714 throw (Common::Error::ECapeUnknown); 00715 00716 protected: 00717 Common::Types::CapeDouble dblPrecision; 00718 }; 00719 00720 #ifndef SWIG 00721 00725 class DianaParameter : virtual public Common::Parameter::ICapeParameter { 00726 public: 00727 00728 class PtrData { 00729 public: 00730 typedef size_t size_type; 00731 00732 PtrData(); 00733 PtrData(Common::Utilities::ICapeUtilities* _owner, void* _ptr, size_type _memsize); 00734 void* operator()() const; 00735 size_type size() const; 00736 Common::Utilities::ICapeUtilities* owner() const; 00737 private: 00738 Common::Utilities::ICapeUtilities* owner_ptr; 00739 void* ptr; 00740 size_type memsize; 00741 }; 00742 00743 public: 00745 DianaParameter(const DianaParameter& param); 00746 00748 DianaParameter& operator=(const DianaParameter& param); 00749 00751 DianaParameter(const DianaRealParameterSpec& spec, 00752 Common::Parameter::CapeParamMode _mode, const PtrData& _ptr); 00754 DianaParameter(const DianaRealParameterSpec& spec, 00755 Common::Parameter::CapeParamMode _mode); 00757 DianaParameter(const Diana::DianaNLPRealParameterSpec& spec, 00758 Common::Parameter::CapeParamMode _mode); 00760 DianaParameter(const DianaStateSpec& spec, 00761 Common::Parameter::CapeParamMode _mode, const PtrData& _ptr); 00763 DianaParameter(const DianaIntegerParameterSpec& spec, 00764 Common::Parameter::CapeParamMode _mode, const PtrData& _ptr); 00766 DianaParameter(const DianaIntegerParameterSpec& spec, 00767 Common::Parameter::CapeParamMode _mode); 00769 DianaParameter(const DianaBooleanParameterSpec& spec, 00770 Common::Parameter::CapeParamMode _mode, const PtrData& _ptr); 00772 DianaParameter(const DianaBooleanParameterSpec& spec, 00773 Common::Parameter::CapeParamMode _mode); 00775 DianaParameter(const DianaOptionParameterSpec& spec, 00776 Common::Parameter::CapeParamMode _mode); 00778 DianaParameter(const DianaPointerParameterSpec& spec, 00779 Common::Parameter::CapeParamMode _mode, const PtrData& _ptr); 00781 DianaParameter(const DianaArrayParameterSpec& spec, 00782 Common::Parameter::CapeParamMode _mode); 00784 DianaParameter(const DianaArrayRealParameterSpec& spec, 00785 Common::Parameter::CapeParamMode _mode); 00787 DianaParameter(const DianaArrayStringParameterSpec& spec, 00788 Common::Parameter::CapeParamMode _mode); 00789 00791 virtual ~DianaParameter(); 00792 00794 const Common::Types::CapeString& GetComponentName() const 00795 throw (Common::Error::ECapeUnknown); 00796 00799 void SetComponentName(const Common::Types::CapeString& _name) 00800 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00801 00803 const Common::Types::CapeString& GetComponentDescription() const 00804 throw (Common::Error::ECapeUnknown); 00805 00808 void SetComponentDescription(const Common::Types::CapeString& _description) 00809 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00810 00813 Common::Types::CapeVariant GetValue() 00814 throw (Common::Error::ECapeUnknown); 00815 00820 virtual void SetValue(const Common::Types::CapeVariant& _value) 00821 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00822 00832 Common::Types::CapeValidationStatus ValStatus() const 00833 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00834 00843 Common::Parameter::CapeParamMode GetMode() const 00844 throw (Common::Error::ECapeUnknown); 00845 00856 void SetMode(Common::Parameter::CapeParamMode _mode) 00857 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument); 00858 00862 Common::Parameter::ICapeParameterSpec* Specification() const 00863 throw (Common::Error::ECapeUnknown); 00864 00868 Common::Types::CapeBoolean Validate(Common::Types::CapeString& message) 00869 throw (Common::Error::ECapeUnknown, 00870 Common::Error::ECapeNoImpl); 00871 00873 void Reset() 00874 throw (Common::Error::ECapeUnknown); 00875 00876 00878 Common::Identification::ICapeIdentification* clone() 00879 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00880 00885 Common::Identification::ICapeIdentification* clone(const PtrData& _ptr) 00886 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00887 00888 protected: 00889 00894 void updateValueByPointer(Common::Types::CapeBoolean bUpdateDirection) 00895 throw (Common::Error::ECapeUnknown); 00896 00897 void updateArrayValue(Common::Types::CapeBoolean bUpdateDirection) 00898 throw (Common::Error::ECapeUnknown); 00899 00900 void updateValue(Common::Types::CapeBoolean bUpdateDirection) 00901 throw (Common::Error::ECapeUnknown); 00902 00903 protected: 00904 Common::Types::CapeString name; 00905 Common::Types::CapeString description; 00906 00907 Common::Parameter::ICapeParameterSpec* specification; 00908 Common::Parameter::CapeParamMode mode; 00909 Common::Types::CapeVariant value; 00910 00914 PtrData ptrInternal; 00915 }; 00916 00917 #endif 00918 }; 00919 00920 #endif // DIANA_PARAMETER_H