libweave: Move reading/writing commands and states files out of libweave

ConfigStore implementation will read and provide that data to libweave.

BUG=brillo:1257
TEST=`FEATURES=test emerge-gizmo libweave buffet`

Change-Id: I8c88e14712d9c5475e759439c222b76e01559a5e
Reviewed-on: https://chromium-review.googlesource.com/293951
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/buffet_config.h b/buffet/buffet_config.h
index 6deb726..e5b4e67 100644
--- a/buffet/buffet_config.h
+++ b/buffet/buffet_config.h
@@ -5,6 +5,7 @@
 #ifndef BUFFET_BUFFET_CONFIG_H_
 #define BUFFET_BUFFET_CONFIG_H_
 
+#include <map>
 #include <set>
 #include <string>
 #include <vector>
@@ -18,20 +19,33 @@
 
 class StorageInterface;
 
+struct BuffetConfigPaths {
+  base::FilePath defaults;
+  base::FilePath settings;
+
+  base::FilePath definitions;
+  base::FilePath test_definitions;
+};
+
 // Handles reading buffet config and state files.
 class BuffetConfig final : public weave::ConfigStore {
  public:
   using OnChangedCallback = base::Callback<void(const weave::Settings&)>;
   ~BuffetConfig() override = default;
 
-  BuffetConfig(const base::FilePath& defaults_path,
-               const base::FilePath& settings_path);
+  explicit BuffetConfig(const BuffetConfigPaths& paths);
 
   // Config overrides.
   bool LoadDefaults(weave::Settings* settings) override;
   std::string LoadSettings() override;
   void SaveSettings(const std::string& settings) override;
   void OnSettingsChanged(const weave::Settings& settings) override;
+  std::string LoadBaseCommandDefs() override;
+  std::map<std::string, std::string> LoadCommandDefs() override;
+  std::string LoadBaseStateDefs() override;
+  std::string LoadBaseStateDefaults() override;
+  std::map<std::string, std::string> LoadStateDefs() override;
+  std::vector<std::string> LoadStateDefaults() override;
 
   void AddOnChangedCallback(const OnChangedCallback& callback);
 
@@ -39,8 +53,7 @@
                     weave::Settings* settings);
 
  private:
-  base::FilePath defaults_path_;
-  base::FilePath settings_path_;
+  BuffetConfigPaths paths_;
 
   std::vector<OnChangedCallback> on_changed_;