Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::ParamHandler Class Reference

#include <ParamHandler.h>

+ Inheritance diagram for Divide::ParamHandler:

Public Types

using HashType = U64
 
using ParamMap = hashMap< HashType, std::any >
 
using ParamStringMap = hashMap< HashType, string >
 A special map for string types (small perf. optimization for add/retrieve)
 
using ParamBoolMap = hashMap< HashType, bool >
 
using ParamFloatMap = hashMap< HashType, F32 >
 Floats are also used often.
 

Public Member Functions

 ParamHandler () noexcept=default
 
 ~ParamHandler ()=default
 
void setDebugOutput (bool logState) noexcept
 
template<typename T >
getParam (HashType nameID, T defaultValue=T()) const
 
template<typename T >
void setParam (HashType nameID, T &&value)
 
template<typename T >
void delParam (HashType nameID)
 
template<typename T >
bool isParam (HashType nameID) const
 
template<>
string getParam (HashType nameID, string defaultValue) const
 
template<>
void setParam (const HashType nameID, string &&value)
 
template<>
bool isParam (const HashType nameID) const
 
template<>
void delParam (HashType nameID)
 
template<>
bool getParam (HashType nameID, const bool defaultValue) const
 
template<>
void setParam (const HashType nameID, bool &&value)
 
template<>
bool isParam (const HashType nameID) const
 
template<>
void delParam (HashType nameID)
 
template<>
F32 getParam (HashType nameID, const F32 defaultValue) const
 
template<>
void setParam (const HashType nameID, F32 &&value)
 
template<>
bool isParam (const HashType nameID) const
 
template<>
void delParam (HashType nameID)
 

Private Attributes

ParamMap _params
 
ParamBoolMap _paramBool
 
ParamStringMap _paramsStr
 
ParamFloatMap _paramsFloat
 
SharedMutex _mutex
 
std::atomic_bool _logState
 

Additional Inherited Members

- Private Member Functions inherited from Divide::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 
- Private Member Functions inherited from Divide::NonMovable
 NonMovable (NonMovable &&)=delete
 
NonMovableoperator= (NonMovable &&)=delete
 
 NonMovable (const NonMovable &)=default
 
NonMovableoperator= (const NonMovable &)=default
 
 NonMovable ()=default
 
 ~NonMovable ()=default
 

Detailed Description

Definition at line 39 of file ParamHandler.h.

Member Typedef Documentation

◆ HashType

Definition at line 42 of file ParamHandler.h.

◆ ParamBoolMap

A special map for boolean types (small perf. optimization for add/retrieve) Used a lot as option toggles

Definition at line 50 of file ParamHandler.h.

◆ ParamFloatMap

Floats are also used often.

Definition at line 52 of file ParamHandler.h.

◆ ParamMap

Definition at line 44 of file ParamHandler.h.

◆ ParamStringMap

A special map for string types (small perf. optimization for add/retrieve)

Definition at line 47 of file ParamHandler.h.

Constructor & Destructor Documentation

◆ ParamHandler()

Divide::ParamHandler::ParamHandler ( )
defaultnoexcept

◆ ~ParamHandler()

Divide::ParamHandler::~ParamHandler ( )
default

Member Function Documentation

◆ delParam() [1/4]

template<typename T >
void Divide::ParamHandler::delParam ( HashType  nameID)

Definition at line 68 of file ParamHandler.inl.

◆ delParam() [2/4]

template<>
void Divide::ParamHandler::delParam ( HashType  nameID)
inline

Definition at line 112 of file ParamHandler.inl.

◆ delParam() [3/4]

template<>
void Divide::ParamHandler::delParam ( HashType  nameID)
inline

Definition at line 149 of file ParamHandler.inl.

◆ delParam() [4/4]

template<>
void Divide::ParamHandler::delParam ( HashType  nameID)
inline

Definition at line 186 of file ParamHandler.inl.

◆ getParam() [1/4]

template<>
bool Divide::ParamHandler::getParam ( HashType  nameID,
const bool  defaultValue 
) const
inline

Definition at line 125 of file ParamHandler.inl.

◆ getParam() [2/4]

template<>
F32 Divide::ParamHandler::getParam ( HashType  nameID,
const F32  defaultValue 
) const
inline

Definition at line 162 of file ParamHandler.inl.

◆ getParam() [3/4]

template<>
string Divide::ParamHandler::getParam ( HashType  nameID,
string  defaultValue 
) const
inline

Definition at line 81 of file ParamHandler.inl.

◆ getParam() [4/4]

template<typename T >
T Divide::ParamHandler::getParam ( HashType  nameID,
defaultValue = T() 
) const

Definition at line 50 of file ParamHandler.inl.

◆ isParam() [1/4]

template<>
bool Divide::ParamHandler::isParam ( const HashType  nameID) const
inline

Definition at line 105 of file ParamHandler.inl.

◆ isParam() [2/4]

template<>
bool Divide::ParamHandler::isParam ( const HashType  nameID) const
inline

Definition at line 143 of file ParamHandler.inl.

◆ isParam() [3/4]

template<>
bool Divide::ParamHandler::isParam ( const HashType  nameID) const
inline

Definition at line 180 of file ParamHandler.inl.

◆ isParam() [4/4]

template<typename T >
bool Divide::ParamHandler::isParam ( HashType  nameID) const

Definition at line 44 of file ParamHandler.inl.

◆ setDebugOutput()

void Divide::ParamHandler::setDebugOutput ( bool  logState)
inlinenoexcept

Definition at line 39 of file ParamHandler.inl.

◆ setParam() [1/4]

template<>
void Divide::ParamHandler::setParam ( const HashType  nameID,
bool &&  value 
)
inline

Definition at line 137 of file ParamHandler.inl.

◆ setParam() [2/4]

template<>
void Divide::ParamHandler::setParam ( const HashType  nameID,
F32 &&  value 
)
inline

Definition at line 174 of file ParamHandler.inl.

◆ setParam() [3/4]

template<>
void Divide::ParamHandler::setParam ( const HashType  nameID,
string &&  value 
)
inline

Definition at line 93 of file ParamHandler.inl.

◆ setParam() [4/4]

template<typename T >
void Divide::ParamHandler::setParam ( HashType  nameID,
T &&  value 
)

Definition at line 62 of file ParamHandler.inl.

Member Data Documentation

◆ _logState

std::atomic_bool Divide::ParamHandler::_logState
private

Definition at line 78 of file ParamHandler.h.

◆ _mutex

SharedMutex Divide::ParamHandler::_mutex
mutableprivate

Definition at line 77 of file ParamHandler.h.

◆ _paramBool

ParamBoolMap Divide::ParamHandler::_paramBool
private

Definition at line 74 of file ParamHandler.h.

◆ _params

ParamMap Divide::ParamHandler::_params
private

Definition at line 73 of file ParamHandler.h.

◆ _paramsFloat

ParamFloatMap Divide::ParamHandler::_paramsFloat
private

Definition at line 76 of file ParamHandler.h.

◆ _paramsStr

ParamStringMap Divide::ParamHandler::_paramsStr
private

Definition at line 75 of file ParamHandler.h.


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