Add feature enable/disable helpers

refs #9471
This commit is contained in:
Michael Friedrich 2015-06-25 10:14:19 +02:00
parent 7b0b04ba8f
commit 6f43162efa
2 changed files with 28 additions and 0 deletions

View File

@ -244,6 +244,31 @@ bool FeatureUtility::GetFeatures(std::vector<String>& features, bool get_disable
return true;
}
bool FeatureUtility::CheckFeatureEnabled(const String& feature)
{
return CheckFeatureInternal(feature, false);
}
bool FeatureUtility::CheckFeatureDisabled(const String& feature)
{
return CheckFeatureInternal(feature, true);
}
bool FeatureUtility::CheckFeatureInternal(const String& feature, bool check_disabled)
{
std::vector<String> features;
if (!FeatureUtility::GetFeatures(features, check_disabled))
return false;
BOOST_FOREACH(const String& check_feature, features) {
if (check_feature == feature)
return true;
}
return false;
}
void FeatureUtility::CollectFeatures(const String& feature_file, std::vector<String>& features)
{
String feature = Utility::BaseName(feature_file);

View File

@ -45,10 +45,13 @@ public:
static int ListFeatures(std::ostream& os = std::cout);
static bool GetFeatures(std::vector<String>& features, bool enable);
static bool CheckFeatureEnabled(const String& feature);
static bool CheckFeatureDisabled(const String& feature);
private:
FeatureUtility(void);
static void CollectFeatures(const String& feature_file, std::vector<String>& features);
static bool CheckFeatureInternal(const String& feature, bool check_disabled);
};
}