1 // Copyright (c) 2012 The Chromium 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 REMOTING_HOST_JSON_HOST_CONFIG_H_ 6 #define REMOTING_HOST_JSON_HOST_CONFIG_H_ 7 8 #include <string> 9 10 #include "base/files/file_path.h" 11 #include "remoting/host/in_memory_host_config.h" 12 13 namespace base { 14 class MessageLoopProxy; 15 } // namespace base 16 17 namespace remoting { 18 19 // JsonHostConfig implements MutableHostConfig for JSON file. 20 class JsonHostConfig : public InMemoryHostConfig { 21 public: 22 JsonHostConfig(const base::FilePath& filename); 23 virtual ~JsonHostConfig(); 24 25 virtual bool Read(); 26 27 // MutableHostConfig interface. 28 virtual bool Save() OVERRIDE; 29 30 std::string GetSerializedData(); 31 32 // Sets the configuration from serialized JSON data. Returns false if the data 33 // could not be parsed. 34 bool SetSerializedData(const std::string& config); 35 36 private: 37 base::FilePath filename_; 38 39 DISALLOW_COPY_AND_ASSIGN(JsonHostConfig); 40 }; 41 42 } // namespace remoting 43 44 #endif // REMOTING_HOST_JSON_HOST_CONFIG_H_ 45