OpenClonk
StdNamingDefaultAdapt< T, D > Struct Template Reference

#include <StdAdaptors.h>

Public Member Functions

 StdNamingDefaultAdapt (T &rValue, const char *szName, const D &rDefault, bool fPrefillDefault, bool fStoreDefault)
 
void CompileFunc (StdCompiler *pComp) const
 

Public Attributes

T & rValue
 
const char * szName
 
const D & rDefault
 
bool fPrefillDefault
 
bool fStoreDefault
 

Detailed Description

template<class T, class D>
struct StdNamingDefaultAdapt< T, D >

Definition at line 97 of file StdAdaptors.h.

Constructor & Destructor Documentation

◆ StdNamingDefaultAdapt()

template<class T , class D >
StdNamingDefaultAdapt< T, D >::StdNamingDefaultAdapt ( T &  rValue,
const char *  szName,
const D &  rDefault,
bool  fPrefillDefault,
bool  fStoreDefault 
)
inline

Member Function Documentation

◆ CompileFunc()

template<class T , class D >
void StdNamingDefaultAdapt< T, D >::CompileFunc ( StdCompiler pComp) const
inline

Definition at line 101 of file StdAdaptors.h.

102  {
103  // Default check
104  if (pComp->hasNaming() && pComp->isSerializer() && rValue == rDefault && !fStoreDefault)
105  {
106  if (pComp->Default(szName)) return;
107  }
108  try
109  {
110  // Search named section, set default if not found
111  if (pComp->Name(szName))
112  {
113  if (fPrefillDefault && pComp->isDeserializer()) rValue = rDefault; // default prefill if desired
115  }
116  else
117  rValue = rDefault;
118  }
119  catch (StdCompiler::Exception *)
120  {
121  pComp->NameEnd(true);
122  throw;
123  }
124  // End section
125  pComp->NameEnd();
126  }
StdDefaultAdapt< T, D > mkDefaultAdapt(T &&rValue, const D &rDefault)
Definition: StdAdaptors.h:64
virtual bool Default(const char *szName)
Definition: StdCompiler.h:88
void Value(const T &rStruct)
Definition: StdCompiler.h:161
virtual void NameEnd(bool fBreak=false)
Definition: StdCompiler.h:78
bool isSerializer()
Definition: StdCompiler.h:54
virtual bool isDeserializer()
Definition: StdCompiler.h:53
virtual bool Name(const char *szName)
Definition: StdCompiler.h:77
virtual bool hasNaming()
Definition: StdCompiler.h:58

References StdCompiler::Default(), StdNamingDefaultAdapt< T, D >::fPrefillDefault, StdNamingDefaultAdapt< T, D >::fStoreDefault, StdCompiler::hasNaming(), StdCompiler::isDeserializer(), StdCompiler::isSerializer(), mkDefaultAdapt(), StdCompiler::Name(), StdCompiler::NameEnd(), StdNamingDefaultAdapt< T, D >::rDefault, StdNamingDefaultAdapt< T, D >::rValue, StdNamingDefaultAdapt< T, D >::szName, and StdCompiler::Value().

Here is the call graph for this function:

Member Data Documentation

◆ fPrefillDefault

template<class T , class D >
bool StdNamingDefaultAdapt< T, D >::fPrefillDefault

Definition at line 99 of file StdAdaptors.h.

Referenced by StdNamingDefaultAdapt< T, D >::CompileFunc().

◆ fStoreDefault

template<class T , class D >
bool StdNamingDefaultAdapt< T, D >::fStoreDefault

Definition at line 99 of file StdAdaptors.h.

Referenced by StdNamingDefaultAdapt< T, D >::CompileFunc().

◆ rDefault

template<class T , class D >
const D& StdNamingDefaultAdapt< T, D >::rDefault

Definition at line 99 of file StdAdaptors.h.

Referenced by StdNamingDefaultAdapt< T, D >::CompileFunc().

◆ rValue

template<class T , class D >
T& StdNamingDefaultAdapt< T, D >::rValue

Definition at line 99 of file StdAdaptors.h.

Referenced by StdNamingDefaultAdapt< T, D >::CompileFunc().

◆ szName

template<class T , class D >
const char* StdNamingDefaultAdapt< T, D >::szName

Definition at line 99 of file StdAdaptors.h.

Referenced by StdNamingDefaultAdapt< T, D >::CompileFunc().


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