| // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "update_engine/simple_key_value_store.h" |
| #include <map> |
| #include <string> |
| #include <vector> |
| #include "base/string_split.h" |
| #include "base/string_util.h" |
| |
| using std::map; |
| using std::string; |
| using std::vector; |
| |
| namespace chromeos_update_engine { |
| namespace simple_key_value_store { |
| |
| // Parses a string. |
| map<std::string, std::string> ParseString(const string& str) { |
| // Split along '\n', then along '=' |
| std::map<std::string, std::string> ret; |
| vector<string> lines; |
| base::SplitStringDontTrim(str, '\n', &lines); |
| for (vector<string>::const_iterator it = lines.begin(); |
| it != lines.end(); ++it) { |
| string::size_type pos = it->find('='); |
| if (pos == string::npos) |
| continue; |
| ret[it->substr(0, pos)] = it->substr(pos + 1); |
| } |
| return ret; |
| } |
| |
| string AssembleString(const std::map<string, string>& data) { |
| string ret; |
| for (std::map<string, string>::const_iterator it = data.begin(); |
| it != data.end(); ++it) { |
| ret += it->first; |
| ret += "="; |
| ret += it->second; |
| ret += "\n"; |
| } |
| return ret; |
| } |
| |
| } // namespace simple_key_value_store |
| } // namespace chromeos_update_engine |