#include "{header}.h" {{ if readwrite }} #include {{ endif }} {{ if for_test }} #include {{ endif }} namespace {cpp_namespace} \{ {{ if for_test }} class flag_provider : public flag_provider_interface \{ private: std::unordered_map overrides_; public: flag_provider() : overrides_() \{} {{ for item in class_elements}} virtual bool {item.flag_name}() override \{ auto it = overrides_.find("{item.flag_name}"); if (it != overrides_.end()) \{ return it->second; } else \{ {{ if item.readwrite- }} return server_configurable_flags::GetServerConfigurableFlag( "aconfig_flags.{item.device_config_namespace}", "{item.device_config_flag}", "{item.default_value}") == "true"; {{ -else- }} return {item.default_value}; {{ -endif }} } } virtual void {item.flag_name}(bool val) override \{ overrides_["{item.flag_name}"] = val; } {{ endfor }} virtual void reset_flags() override \{ overrides_.clear(); } }; {{ -else- }} class flag_provider : public flag_provider_interface \{ public: {{ for item in class_elements}} virtual bool {item.flag_name}() override \{ {{ if item.readwrite- }} return server_configurable_flags::GetServerConfigurableFlag( "aconfig_flags.{item.device_config_namespace}", "{item.device_config_flag}", "{item.default_value}") == "true"; {{ -else- }} return {item.default_value}; {{ -endif }} } {{ endfor }} }; {{ -endif }} std::unique_ptr provider_ = std::make_unique(); } {{ for item in class_elements}} bool {header}_{item.flag_name}() \{ {{ if for_test }} return {cpp_namespace}::{item.flag_name}(); {{ -else- }} {{ if not item.readwrite- }} return {item.default_value}; {{ -else- }} return {cpp_namespace}::{item.flag_name}(); {{ -endif }} {{ -endif }} } {{ if for_test }} void set_{header}_{item.flag_name}(bool val) \{ {cpp_namespace}::{item.flag_name}(val); } {{ -endif }} {{ endfor -}} {{ if for_test }} void {header}_reset_flags() \{ {cpp_namespace}::reset_flags(); } {{ -endif }}