KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PARAM_SCALED< ValueType > Class Template Reference

Represents a parameter that has a scaling factor between the value in the file and the value used internally (i.e. More...

#include <parameters.h>

Inheritance diagram for PARAM_SCALED< ValueType >:
PARAM_BASE

Public Member Functions

 PARAM_SCALED (const std::string &aJsonPath, ValueType *aPtr, ValueType aDefault, double aScale=1.0, bool aReadOnly=false)
 
 PARAM_SCALED (const std::string &aJsonPath, ValueType *aPtr, ValueType aDefault, ValueType aMin, ValueType aMax, double aScale=1.0, bool aReadOnly=false)
 
void Load (const JSON_SETTINGS &aSettings, bool aResetIfMissing=true) const override
 Loads the value of this parameter from JSON to the underlying storage.
 
void Store (JSON_SETTINGS *aSettings) const override
 Stores the value of this parameter to the given JSON_SETTINGS object.
 
ValueType GetDefault () const
 
virtual void SetDefault () override
 
bool MatchesFile (const JSON_SETTINGS &aSettings) const override
 Checks whether the parameter in memory matches the one in a given JSON file.
 
const std::string & GetJsonPath () const
 
bool ClearUnknownKeys () const
 
void SetClearUnknownKeys (bool aSet=true)
 

Protected Attributes

std::string m_path
 Address of the param in the json files.
 
bool m_readOnly
 Indicates param pointer should never be overwritten.
 
bool m_clearUnknownKeys
 Keys should be cleared from source rather than merged.
 

Private Attributes

ValueType * m_ptr
 
ValueType m_default
 
ValueType m_min
 
ValueType m_max
 
bool m_use_minmax
 
double m_scale
 
double m_invScale
 

Detailed Description

template<typename ValueType>
class PARAM_SCALED< ValueType >

Represents a parameter that has a scaling factor between the value in the file and the value used internally (i.e.

the value pointer). This basically only makes sense to use with int or double as ValueType.

Template Parameters
ValueTypeis the internal type: the file always stores a double.

Definition at line 392 of file parameters.h.

Constructor & Destructor Documentation

◆ PARAM_SCALED() [1/2]

template<typename ValueType>
PARAM_SCALED< ValueType >::PARAM_SCALED ( const std::string & aJsonPath,
ValueType * aPtr,
ValueType aDefault,
double aScale = 1.0,
bool aReadOnly = false )
inline

Definition at line 395 of file parameters.h.

References m_default, m_invScale, m_max, m_min, m_ptr, m_scale, m_use_minmax, and PARAM_BASE::PARAM_BASE().

◆ PARAM_SCALED() [2/2]

template<typename ValueType>
PARAM_SCALED< ValueType >::PARAM_SCALED ( const std::string & aJsonPath,
ValueType * aPtr,
ValueType aDefault,
ValueType aMin,
ValueType aMax,
double aScale = 1.0,
bool aReadOnly = false )
inline

Definition at line 407 of file parameters.h.

References m_default, m_invScale, m_max, m_min, m_ptr, m_scale, m_use_minmax, and PARAM_BASE::PARAM_BASE().

Member Function Documentation

◆ ClearUnknownKeys()

bool PARAM_BASE::ClearUnknownKeys ( ) const
inlineinherited
Returns
true if keys should be cleared from source file rather than merged. Useful for things such as text variables that are semantically an array but stored as a map.

Definition at line 78 of file parameters.h.

References m_clearUnknownKeys.

◆ GetDefault()

template<typename ValueType>
ValueType PARAM_SCALED< ValueType >::GetDefault ( ) const
inline

Definition at line 447 of file parameters.h.

References m_default.

◆ GetJsonPath()

const std::string & PARAM_BASE::GetJsonPath ( ) const
inlineinherited
Returns
the path name of the parameter used to store it in the json file mainly useful in error messages

Definition at line 72 of file parameters.h.

References m_path.

◆ Load()

template<typename ValueType>
void PARAM_SCALED< ValueType >::Load ( const JSON_SETTINGS & aSettings,
bool aResetIfMissing = true ) const
inlineoverridevirtual

Loads the value of this parameter from JSON to the underlying storage.

Parameters
aSettingsis the JSON_SETTINGS object to load from.
aResetIfMissingif true will set the parameter to its default value if load fails

Implements PARAM_BASE.

Definition at line 419 of file parameters.h.

References JSON_SETTINGS::Get(), KiROUND(), m_default, m_invScale, m_max, m_min, PARAM_BASE::m_path, m_ptr, PARAM_BASE::m_readOnly, and m_use_minmax.

◆ MatchesFile()

template<typename ValueType>
bool PARAM_SCALED< ValueType >::MatchesFile ( const JSON_SETTINGS & aSettings) const
inlineoverridevirtual

Checks whether the parameter in memory matches the one in a given JSON file.

Parameters
aSettingsis a JSON_SETTINGS to check the JSON file contents of
Returns
true if the parameter in memory matches its value in the file

Implements PARAM_BASE.

Definition at line 457 of file parameters.h.

References JSON_SETTINGS::Get(), m_invScale, PARAM_BASE::m_path, and m_ptr.

◆ SetClearUnknownKeys()

void PARAM_BASE::SetClearUnknownKeys ( bool aSet = true)
inlineinherited

Definition at line 80 of file parameters.h.

References m_clearUnknownKeys.

Referenced by PARAM_MAP< Value >::PARAM_MAP().

◆ SetDefault()

template<typename ValueType>
virtual void PARAM_SCALED< ValueType >::SetDefault ( )
inlineoverridevirtual

Implements PARAM_BASE.

Definition at line 452 of file parameters.h.

References m_default, and m_ptr.

◆ Store()

template<typename ValueType>
void PARAM_SCALED< ValueType >::Store ( JSON_SETTINGS * aSettings) const
inlineoverridevirtual

Stores the value of this parameter to the given JSON_SETTINGS object.

Parameters
aSettingsis the JSON_SETTINGS object to store into.

Implements PARAM_BASE.

Definition at line 442 of file parameters.h.

References m_invScale, PARAM_BASE::m_path, m_ptr, and JSON_SETTINGS::Set().

Member Data Documentation

◆ m_clearUnknownKeys

bool PARAM_BASE::m_clearUnknownKeys
protectedinherited

Keys should be cleared from source rather than merged.

This is useful for things that are semantically an array but stored as a map, such as textVars.

Definition at line 85 of file parameters.h.

Referenced by ClearUnknownKeys(), PARAM_BASE(), PARAM_WXSTRING_MAP::PARAM_WXSTRING_MAP(), and SetClearUnknownKeys().

◆ m_default

template<typename ValueType>
ValueType PARAM_SCALED< ValueType >::m_default
private

Definition at line 467 of file parameters.h.

Referenced by GetDefault(), Load(), PARAM_SCALED(), PARAM_SCALED(), and SetDefault().

◆ m_invScale

template<typename ValueType>
double PARAM_SCALED< ValueType >::m_invScale
private

Definition at line 472 of file parameters.h.

Referenced by Load(), MatchesFile(), PARAM_SCALED(), PARAM_SCALED(), and Store().

◆ m_max

template<typename ValueType>
ValueType PARAM_SCALED< ValueType >::m_max
private

Definition at line 469 of file parameters.h.

Referenced by Load(), PARAM_SCALED(), and PARAM_SCALED().

◆ m_min

template<typename ValueType>
ValueType PARAM_SCALED< ValueType >::m_min
private

Definition at line 468 of file parameters.h.

Referenced by Load(), PARAM_SCALED(), and PARAM_SCALED().

◆ m_path

◆ m_ptr

template<typename ValueType>
ValueType* PARAM_SCALED< ValueType >::m_ptr
private

Definition at line 466 of file parameters.h.

Referenced by Load(), MatchesFile(), PARAM_SCALED(), PARAM_SCALED(), SetDefault(), and Store().

◆ m_readOnly

◆ m_scale

template<typename ValueType>
double PARAM_SCALED< ValueType >::m_scale
private

Definition at line 471 of file parameters.h.

Referenced by PARAM_SCALED(), and PARAM_SCALED().

◆ m_use_minmax

template<typename ValueType>
bool PARAM_SCALED< ValueType >::m_use_minmax
private

Definition at line 470 of file parameters.h.

Referenced by Load(), PARAM_SCALED(), and PARAM_SCALED().


The documentation for this class was generated from the following file: