| #ifndef {header}_flag_provider_HEADER_H |
| #define {header}_flag_provider_HEADER_H |
| #include "{header}.h" |
| |
| {{ if readwrite }} |
| #include <server_configurable_flags/get_flags.h> |
| using namespace server_configurable_flags; |
| {{ endif }} |
| |
| #include <unordered_map> |
| |
| namespace {cpp_namespace} \{ |
| class flag_provider : public flag_provider_interface \{ |
| private: |
| std::unordered_map<std::string, bool> 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 GetServerConfigurableFlag( |
| "{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(); |
| } |
| }; |
| } |
| #endif |