AU: Common code to parse simple key/value store files

We use a few files, like /etc/lsb-release, that have a simple
key/value store format: each line is a key/value pair and the
key/value are separated by '='. This change make some common code to
parse (and assemble) these files, which is used in one place now but
will be used in another place soon, too.

BUG=None
TEST=attached unittests

Review URL: http://codereview.chromium.org/2105016
5 files changed
tree: 859490c43091ecdac4913f8c76f7ddfb73722aaa
  1. action.h
  2. action_pipe.h
  3. action_pipe_unittest.cc
  4. action_processor.cc
  5. action_processor.h
  6. action_processor_unittest.cc
  7. action_unittest.cc
  8. bzip.cc
  9. bzip.h
  10. bzip_extent_writer.cc
  11. bzip_extent_writer.h
  12. bzip_extent_writer_unittest.cc
  13. cycle_breaker.cc
  14. cycle_breaker.h
  15. cycle_breaker_unittest.cc
  16. dbus_constants.h
  17. dbus_service.cc
  18. dbus_service.h
  19. decompressing_file_writer.cc
  20. decompressing_file_writer.h
  21. decompressing_file_writer_unittest.cc
  22. delta_diff_generator.cc
  23. delta_diff_generator.h
  24. delta_diff_generator_unittest.cc
  25. delta_performer.cc
  26. delta_performer.h
  27. delta_performer_unittest.cc
  28. download_action.cc
  29. download_action.h
  30. download_action_unittest.cc
  31. extent_mapper.cc
  32. extent_mapper.h
  33. extent_mapper_unittest.cc
  34. extent_writer.cc
  35. extent_writer.h
  36. extent_writer_unittest.cc
  37. file_writer.cc
  38. file_writer.h
  39. file_writer_unittest.cc
  40. filesystem_copier_action.cc
  41. filesystem_copier_action.h
  42. filesystem_copier_action_unittest.cc
  43. filesystem_iterator.cc
  44. filesystem_iterator.h
  45. filesystem_iterator_unittest.cc
  46. gen_coverage_html.sh
  47. generate_delta_main.cc
  48. graph_types.h
  49. graph_utils.cc
  50. graph_utils.h
  51. graph_utils_unittest.cc
  52. gzip.cc
  53. gzip.h
  54. http_fetcher.h
  55. http_fetcher_unittest.cc
  56. install_plan.h
  57. integration_unittest.cc
  58. libcurl_http_fetcher.cc
  59. libcurl_http_fetcher.h
  60. local_coverage_rate.sh
  61. main.cc
  62. marshal.list
  63. mock_file_writer.h
  64. mock_http_fetcher.cc
  65. mock_http_fetcher.h
  66. omaha_hash_calculator.cc
  67. omaha_hash_calculator.h
  68. omaha_hash_calculator_unittest.cc
  69. omaha_request_prep_action.cc
  70. omaha_request_prep_action.h
  71. omaha_request_prep_action_unittest.cc
  72. omaha_response_handler_action.cc
  73. omaha_response_handler_action.h
  74. omaha_response_handler_action_unittest.cc
  75. org.chromium.UpdateEngine.service
  76. postinstall_runner_action.cc
  77. postinstall_runner_action.h
  78. postinstall_runner_action_unittest.cc
  79. SConstruct
  80. set_bootable_flag_action.cc
  81. set_bootable_flag_action.h
  82. set_bootable_flag_action_unittest.cc
  83. simple_key_value_store.cc
  84. simple_key_value_store.h
  85. simple_key_value_store_unittest.cc
  86. split_file_writer.cc
  87. split_file_writer.h
  88. split_file_writer_unittest.cc
  89. subprocess.cc
  90. subprocess.h
  91. subprocess_unittest.cc
  92. tarjan.cc
  93. tarjan.h
  94. tarjan_unittest.cc
  95. test_http_server.cc
  96. test_http_server.py
  97. test_utils.cc
  98. test_utils.h
  99. testrunner.cc
  100. topological_sort.cc
  101. topological_sort.h
  102. topological_sort_unittest.cc
  103. update_attempter.cc
  104. update_attempter.h
  105. update_check_action.cc
  106. update_check_action.h
  107. update_check_action_unittest.cc
  108. update_engine.xml
  109. update_engine_client.cc
  110. update_metadata.proto
  111. UpdateEngine.conf
  112. utils.cc
  113. utils.h
  114. utils_unittest.cc
  115. zip_unittest.cc