swr/rast: simplify knob default value setup

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
Tim Rowley 2017-07-31 17:22:54 -05:00
parent 844be91e70
commit c8fe4c13b2
2 changed files with 11 additions and 14 deletions

View File

@ -67,12 +67,6 @@ public:
return Value();
}
protected:
Knob(T const &defaultValue) :
m_Value(expandEnvironmentVariables(defaultValue))
{
}
private:
T m_Value;
};
@ -83,10 +77,10 @@ private:
{ \\
Knob_##_name() : Knob<_type>(_default) { } \\
static const char* Name() { return "KNOB_" #_name; } \\
static _type DefaultValue() { return (_default); } \\
} _name;
#define GET_KNOB(_name) g_GlobalKnobs._name.Value()
@ -117,8 +111,9 @@ struct GlobalKnobs
% endif
% endfor
GlobalKnobs();
std::string ToString(const char* optPerLinePrefix="");
GlobalKnobs();
};
extern GlobalKnobs g_GlobalKnobs;

View File

@ -91,16 +91,18 @@ static inline void ConvertEnvToKnob(const char* pOverride, std::string& knobValu
template <typename T>
static inline void InitKnob(T& knob)
{
// TODO, read registry first
// Second, read environment variables
// Read environment variables
const char* pOverride = getenv(knob.Name());
if (pOverride)
{
auto knobValue = knob.Value();
auto knobValue = knob.DefaultValue();
ConvertEnvToKnob(pOverride, knobValue);
knob.Value(knobValue);
}
else
{
// Set default value
knob.Value(knob.DefaultValue());
}
}