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

Like a normal param, but with custom getter and setter functions. More...

#include <parameters.h>

Inheritance diagram for PARAM_LAMBDA< ValueType >:
PARAM_BASE

Public Member Functions

 PARAM_LAMBDA (const std::string &aJsonPath, std::function< ValueType()> aGetter, std::function< void(ValueType)> aSetter, ValueType aDefault, 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
 
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_default
 
std::function< ValueType()> m_getter
 
std::function< void(ValueType)> m_setter
 

Detailed Description

template<typename ValueType>
class PARAM_LAMBDA< ValueType >

Like a normal param, but with custom getter and setter functions.

Template Parameters
ValueTypeis the value to store

Definition at line 295 of file parameters.h.

Constructor & Destructor Documentation

◆ PARAM_LAMBDA()

template<typename ValueType>
PARAM_LAMBDA< ValueType >::PARAM_LAMBDA ( const std::string & aJsonPath,
std::function< ValueType()> aGetter,
std::function< void(ValueType)> aSetter,
ValueType aDefault,
bool aReadOnly = false )
inline

Definition at line 298 of file parameters.h.

References m_default, m_getter, m_setter, move, 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_LAMBDA< ValueType >::GetDefault ( ) const
inline

Definition at line 340 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_LAMBDA< 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 308 of file parameters.h.

References JSON_SETTINGS::Get(), JSON_SETTINGS::GetJson(), m_default, PARAM_BASE::m_path, PARAM_BASE::m_readOnly, and m_setter.

◆ MatchesFile()

template<typename ValueType>
bool PARAM_LAMBDA< 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 350 of file parameters.h.

References JSON_SETTINGS::Get(), JSON_SETTINGS::GetJson(), m_getter, and PARAM_BASE::m_path.

◆ 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>
void PARAM_LAMBDA< ValueType >::SetDefault ( )
inlineoverridevirtual

Implements PARAM_BASE.

Definition at line 345 of file parameters.h.

References m_default, and m_setter.

◆ Store()

template<typename ValueType>
void PARAM_LAMBDA< 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 329 of file parameters.h.

References m_getter, PARAM_BASE::m_path, 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_LAMBDA< ValueType >::m_default
private

Definition at line 368 of file parameters.h.

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

◆ m_getter

template<typename ValueType>
std::function<ValueType()> PARAM_LAMBDA< ValueType >::m_getter
private

Definition at line 369 of file parameters.h.

Referenced by MatchesFile(), PARAM_LAMBDA(), and Store().

◆ m_path

◆ m_readOnly

◆ m_setter

template<typename ValueType>
std::function<void( ValueType )> PARAM_LAMBDA< ValueType >::m_setter
private

Definition at line 370 of file parameters.h.

Referenced by Load(), PARAM_LAMBDA(), and SetDefault().


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