KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PARAM_MAP< Value > Class Template Reference

Represents a map of <std::string, Value>. More...

#include <parameters.h>

Inheritance diagram for PARAM_MAP< Value >:
PARAM_BASE

Public Member Functions

 PARAM_MAP (const std::string &aJsonPath, std::map< std::string, Value > *aPtr, std::initializer_list< std::pair< const std::string, Value > > aDefault, bool aReadOnly=false)
 
void Load (JSON_SETTINGS *aSettings, bool aResetIfMissing=true) const override
 Loads the value of this parameter from JSON to the underlying storage. More...
 
void Store (JSON_SETTINGS *aSettings) const override
 Stores the value of this parameter to the given JSON_SETTINGS object. More...
 
virtual void SetDefault () override
 
bool MatchesFile (JSON_SETTINGS *aSettings) const override
 Checks whether the parameter in memory matches the one in a given JSON file. More...
 
const std::string & GetJsonPath () const
 

Protected Attributes

std::string m_path
 the string used to store the param in json files More...
 
bool m_readOnly
 ! True if the parameter pointer should never be overwritten More...
 

Private Attributes

std::map< std::string, Value > * m_ptr
 
std::map< std::string, Value > m_default
 

Detailed Description

template<typename Value>
class PARAM_MAP< Value >

Represents a map of <std::string, Value>.

The key parameter has to be a string in JSON.

The key must be stored in UTF-8 format, so any translated strings or strings provided by the user as a key must be converted to UTF-8 at the site where they are placed in the underlying map that this PARAM_MAP points to.

Values must also be in UTF-8, but if you use wxString as the value type, this conversion will be done automatically by the to_json and from_json helpers defined in json_settings.cpp

Template Parameters
Valueis the value type of the map

Definition at line 547 of file parameters.h.

Constructor & Destructor Documentation

◆ PARAM_MAP()

template<typename Value >
PARAM_MAP< Value >::PARAM_MAP ( const std::string &  aJsonPath,
std::map< std::string, Value > *  aPtr,
std::initializer_list< std::pair< const std::string, Value > >  aDefault,
bool  aReadOnly = false 
)
inline

Definition at line 550 of file parameters.h.

Member Function Documentation

◆ 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 69 of file parameters.h.

References PARAM_BASE::m_path.

◆ Load()

template<typename Value >
void PARAM_MAP< Value >::Load ( JSON_SETTINGS aSettings,
bool  aResetIfMissing = true 
) const
overridevirtual

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 231 of file parameters.cpp.

References JSON_SETTINGS::GetJson().

◆ MatchesFile()

template<typename Value >
bool PARAM_MAP< Value >::MatchesFile ( JSON_SETTINGS aSettings) const
overridevirtual

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 264 of file parameters.cpp.

References JSON_SETTINGS::GetJson().

◆ SetDefault()

template<typename Value >
virtual void PARAM_MAP< Value >::SetDefault ( )
inlineoverridevirtual

Implements PARAM_BASE.

Definition at line 562 of file parameters.h.

References PARAM_MAP< Value >::m_default, and PARAM_MAP< Value >::m_ptr.

◆ Store()

template<typename Value >
void PARAM_MAP< Value >::Store ( JSON_SETTINGS aSettings) const
overridevirtual

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 252 of file parameters.cpp.

References JSON_SETTINGS::Set().

Member Data Documentation

◆ m_default

template<typename Value >
std::map<std::string, Value> PARAM_MAP< Value >::m_default
private

Definition at line 572 of file parameters.h.

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

◆ m_path

◆ m_ptr

template<typename Value >
std::map<std::string, Value>* PARAM_MAP< Value >::m_ptr
private

Definition at line 570 of file parameters.h.

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

◆ m_readOnly

bool PARAM_BASE::m_readOnly
protectedinherited

! True if the parameter pointer should never be overwritten

Definition at line 78 of file parameters.h.

Referenced by COLOR_MAP_PARAM::Load(), PARAM< ValueType >::Load(), PARAM_PATH::Load(), PARAM_ENUM< EnumType >::Load(), PARAM_SCALED< ValueType >::Load(), and PARAM_PATH_LIST::Load().


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