1 // Copyright 2015 The Weave Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef LIBWEAVE_EXAMPLES_PROVIDER_FILE_CONFIG_STORE_H_ 6 #define LIBWEAVE_EXAMPLES_PROVIDER_FILE_CONFIG_STORE_H_ 7 8 #include <map> 9 #include <string> 10 #include <vector> 11 12 #include <weave/provider/config_store.h> 13 #include <weave/provider/task_runner.h> 14 15 namespace weave { 16 namespace examples { 17 18 class FileConfigStore : public provider::ConfigStore { 19 public: 20 FileConfigStore(const std::string& model_id, 21 provider::TaskRunner* task_runner); 22 23 bool LoadDefaults(Settings* settings) override; 24 std::string LoadSettings(const std::string& name) override; 25 void SaveSettings(const std::string& name, 26 const std::string& settings, 27 const DoneCallback& callback) override; 28 29 std::string LoadSettings() override; 30 31 private: 32 std::string GetPath(const std::string& name) const; 33 const std::string model_id_; 34 provider::TaskRunner* task_runner_{nullptr}; 35 }; 36 37 } // namespace examples 38 } // namespace weave 39 40 #endif // LIBWEAVE_EXAMPLES_PROVIDER_FILE_CONFIG_STORE_H_ 41