// Copyright 2015 The Weave Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef LIBWEAVE_EXAMPLES_PROVIDER_FILE_CONFIG_STORE_H_ #define LIBWEAVE_EXAMPLES_PROVIDER_FILE_CONFIG_STORE_H_ #include <map> #include <string> #include <vector> #include <weave/provider/config_store.h> #include <weave/provider/task_runner.h> namespace weave { namespace examples { class FileConfigStore : public provider::ConfigStore { public: FileConfigStore(const std::string& model_id, provider::TaskRunner* task_runner); bool LoadDefaults(Settings* settings) override; std::string LoadSettings(const std::string& name) override; void SaveSettings(const std::string& name, const std::string& settings, const DoneCallback& callback) override; std::string LoadSettings() override; private: std::string GetPath(const std::string& name) const; const std::string model_id_; provider::TaskRunner* task_runner_{nullptr}; }; } // namespace examples } // namespace weave #endif // LIBWEAVE_EXAMPLES_PROVIDER_FILE_CONFIG_STORE_H_