DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
Base class of parameters containing lists of values. More...
Public Types | |
using | UnderlyingType = std::vector< ParamType > |
List type to be used for the parameter. More... | |
Public Member Functions | |
const auto & | GetDefaultValue () const noexcept |
Returns this parameter's default value list. Thread-safe since a reference to a const member variable is returned. More... | |
const auto & | Get () const noexcept |
Returns the parameter's values. More... | |
auto & | operator= (const UnderlyingType &NewValues) |
Assigns new values to this parameter. The operator cannot be accessed by Object because this function is not const. More... | |
Public Member Functions inherited from DynExp::ParamsBase::ParamBase | |
ParamBase (const ParamBase &)=delete | |
ParamBase & | operator= (const ParamBase &)=delete |
QDomElement | ToXMLNode (QDomDocument &Document) const |
Converts this parameter to a Qt dom element (describing an XML node containing this parameter's name and value). More... | |
void | FromXMLNode (const QDomElement &XMLElement) |
Restores this parameter's value from the given Qt dom element (describing an XML node) More... | |
bool | Validate () |
Checks whether a valid value is assigned to this parameter. This function is not const since it is also intended to reset the parameter if it is invalid. More... | |
void | Reset () |
Resets this parameter to its default value. More... | |
bool | IsUserEditable () const noexcept |
Returns ParamBase::UserEditable. More... | |
std::string_view | GetParamName () const noexcept |
Returns ParamBase::ParamName. More... | |
std::string_view | GetParamTitle () const noexcept |
Returns ParamBase::ParamTitle. More... | |
std::string_view | GetParamDescription () const noexcept |
Returns ParamBase::ParamDescription. More... | |
bool | GetNeedsResetToApplyChange () const noexcept |
Returns ParamBase::NeedsResetToApplyChange. More... | |
Protected Member Functions | |
TypedListParamBase (ParamsBase &Owner, std::string ParamName, std::string_view ParamTitle, std::string_view ParamDescription, bool NeedsResetToApplyChange=true, UnderlyingType DefaultValues={}) | |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true). More... | |
TypedListParamBase (ParamsBase &Owner, std::string ParamName, UnderlyingType DefaultValues={}) | |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false). More... | |
virtual void | ToXMLNodeChild (QDomDocument &Document, QDomElement &XMLElement) const override |
Converts this parameter to a Qt dom element (describing an XML node containing this parameter's name and value). More... | |
virtual void | FromXMLNodeChild (const QDomElement &XMLElement) override |
Restores this parameter's value from the given Qt dom element (describing an XML node) More... | |
Protected Member Functions inherited from DynExp::ParamsBase::ParamBase | |
ParamBase (ParamsBase &Owner, std::string ParamName, std::string_view ParamTitle, std::string_view ParamDescription, bool NeedsResetToApplyChange) | |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true). More... | |
ParamBase (ParamsBase &Owner, std::string ParamName) | |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false). More... | |
virtual | ~ParamBase ()=0 |
const auto & | GetOwner () const noexcept |
Returns the ParamsBase instance owning this ParamBase instance. More... | |
auto & | GetOwner () noexcept |
Returns the ParamsBase instance owning this ParamBase instance. More... | |
Private Member Functions | |
virtual bool | ValidateChild () const override final |
Checks whether a valid value is assigned to this parameter. This function is not const since it is also intended to reset the parameter if it is invalid. Returns true by default. More... | |
virtual bool | ValidateValues (const UnderlyingType &NewValues) const |
Called by ValidateChild(). Validates a list of values. Override to validate the vector which is about to be assigned to the list parameter. Returns true by default. More... | |
virtual void | ResetChild () override |
Resets this parameter to its default value. More... | |
Private Attributes | |
const UnderlyingType | DefaultValues |
Values to assign to the parameter upon construction and reset. More... | |
UnderlyingType | Values |
Current parameter values. More... | |
Additional Inherited Members | |
Public Attributes inherited from DynExp::ParamsBase::ParamBase | |
ParamsBaseOnlyType | ParamsBaseOnly |
Provides the class ParamsBase access to some private members of class ParamBase . More... | |
Base class of parameters containing lists of values.
ParamType | Underlying value type of the parameter's list entries |
using DynExp::ParamsBase::TypedListParamBase< ParamType >::UnderlyingType = std::vector<ParamType> |
|
inlineprotected |
Base constructor of any parameter to be used if a parameter should be displayed in a settings dialog (UserEditable is set to true).
Owner | ParamsBase instance owning this parameter. |
ParamName | Name of the parameter to be used in the XML config file. std::string to allow for auto-generated names. |
ParamTitle | Title of the parameter to be displayed in settings dialogs. A static string literal with a constant address is expected. |
ParamDescription | Detailed description of the parameter to be displayed in settings dialogs. A static string literal with a constant address is expected. |
NeedsResetToApplyChange | Indicated whether the object this parameter belongs to needs to be reset to apply changes if this parameter's value has changed. |
DefaultValues | List of default values to assign to the constructed parameter |
|
inlineprotected |
Base constructor of any parameter to be used if a parameter should not be displayed in a settings dialog (UserEditable is set to false).
Owner | ParamsBase instance owning this parameter. |
ParamName | Name of the parameter to be used in the XML config file. std::string to allow for auto-generated names. |
DefaultValues | List of default values to assign to the constructed parameter |
|
inlineoverrideprotectedvirtual |
Restores this parameter's value from the given Qt dom element (describing an XML node)
XMLElement | Qt dom element containing information about this parameter. |
Implements DynExp::ParamsBase::ParamBase.
Reimplemented in DynExp::ParamsBase::ListParam< LinkType, std::enable_if_t< std::is_base_of_v< ObjectLinkBase, LinkType > > >.
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
Assigns new values to this parameter. The operator cannot be accessed by Object
because this function is not const.
NewValues | New values to assign |
Util::InvalidArgException | is thrown if the values to assign to the parameter are not considered valid as determined by a call to ParamBase::Validate(). |
|
inlineoverrideprivatevirtual |
Resets this parameter to its default value.
Implements DynExp::ParamsBase::ParamBase.
|
inlineoverrideprotectedvirtual |
Converts this parameter to a Qt dom element (describing an XML node containing this parameter's name and value).
Document | Qt dom document within to create the dom element. |
XMLElement | Qt dom element to save information about this parameter to. |
Implements DynExp::ParamsBase::ParamBase.
|
inlinefinaloverrideprivatevirtual |
Checks whether a valid value is assigned to this parameter. This function is not const since it is also intended to reset the parameter if it is invalid. Returns true by default.
Reimplemented from DynExp::ParamsBase::ParamBase.
|
inlineprivatevirtual |
Called by ValidateChild(). Validates a list of values. Override to validate the vector which is about to be assigned to the list parameter. Returns true by default.
NewValues | Values to be validated before the assignment |
NewValues
is considered valid, false otherwise.
|
private |
|
private |