A reusable file descriptor abstraction.

Includes an API definition for opening/closing, reading from / writing
to files. Also includes a concrete implementation based on standard
POSIX calls.

BUG=none
TEST=Builds and runs unit tests

Change-Id: I7eefacff396493938c1c327182b27e56750fe284
Reviewed-on: https://gerrit.chromium.org/gerrit/22405
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Jay Srinivasan <jaysri@chromium.org>
3 files changed
tree: bc973528dc7f88de5ec9a19a447544dfeb46d836
  1. .gitignore
  2. 99-gpio-dutflag.rules
  3. action.h
  4. action_mock.h
  5. action_pipe.h
  6. action_pipe_unittest.cc
  7. action_processor.cc
  8. action_processor.h
  9. action_processor_mock.h
  10. action_processor_unittest.cc
  11. action_unittest.cc
  12. bzip.cc
  13. bzip.h
  14. bzip_extent_writer.cc
  15. bzip_extent_writer.h
  16. bzip_extent_writer_unittest.cc
  17. certificate_checker.cc
  18. certificate_checker.h
  19. certificate_checker_mock.h
  20. certificate_checker_unittest.cc
  21. chrome_browser_proxy_resolver.cc
  22. chrome_browser_proxy_resolver.h
  23. chrome_browser_proxy_resolver_unittest.cc
  24. chrome_proxy_resolver.cc
  25. chrome_proxy_resolver.h
  26. chrome_proxy_resolver_unittest.cc
  27. cycle_breaker.cc
  28. cycle_breaker.h
  29. cycle_breaker_unittest.cc
  30. dbus_constants.h
  31. dbus_interface.h
  32. dbus_service.cc
  33. dbus_service.h
  34. delta_diff_generator.cc
  35. delta_diff_generator.h
  36. delta_diff_generator_unittest.cc
  37. delta_performer.cc
  38. delta_performer.h
  39. delta_performer_unittest.cc
  40. download_action.cc
  41. download_action.h
  42. download_action_unittest.cc
  43. extent_mapper.cc
  44. extent_mapper.h
  45. extent_mapper_unittest.cc
  46. extent_ranges.cc
  47. extent_ranges.h
  48. extent_ranges_unittest.cc
  49. extent_writer.cc
  50. extent_writer.h
  51. extent_writer_unittest.cc
  52. file_descriptor.cc
  53. file_descriptor.h
  54. file_writer.cc
  55. file_writer.h
  56. file_writer_mock.h
  57. file_writer_unittest.cc
  58. filesystem_copier_action.cc
  59. filesystem_copier_action.h
  60. filesystem_copier_action_unittest.cc
  61. filesystem_iterator.cc
  62. filesystem_iterator.h
  63. filesystem_iterator_unittest.cc
  64. flimflam_proxy.cc
  65. flimflam_proxy.h
  66. flimflam_proxy_unittest.cc
  67. full_update_generator.cc
  68. full_update_generator.h
  69. full_update_generator_unittest.cc
  70. gen_coverage_html.sh
  71. generate_delta_main.cc
  72. gpio_handler.cc
  73. gpio_handler.h
  74. graph_types.h
  75. graph_utils.cc
  76. graph_utils.h
  77. graph_utils_unittest.cc
  78. http_common.cc
  79. http_common.h
  80. http_fetcher.cc
  81. http_fetcher.h
  82. http_fetcher_unittest.cc
  83. http_fetcher_unittest.h
  84. inherit-review-settings-ok
  85. install_plan.h
  86. integration_unittest.cc
  87. libcurl_http_fetcher.cc
  88. libcurl_http_fetcher.h
  89. LICENSE
  90. local_coverage_rate.sh
  91. main.cc
  92. marshal.list
  93. metadata.cc
  94. metadata.h
  95. metadata_unittest.cc
  96. mock_dbus_interface.h
  97. mock_file_writer.h
  98. mock_http_fetcher.cc
  99. mock_http_fetcher.h
  100. multi_range_http_fetcher.cc
  101. multi_range_http_fetcher.h
  102. omaha_hash_calculator.cc
  103. omaha_hash_calculator.h
  104. omaha_hash_calculator_unittest.cc
  105. omaha_request_action.cc
  106. omaha_request_action.h
  107. omaha_request_action_unittest.cc
  108. omaha_request_params.cc
  109. omaha_request_params.h
  110. omaha_request_params_unittest.cc
  111. omaha_response_handler_action.cc
  112. omaha_response_handler_action.h
  113. omaha_response_handler_action_unittest.cc
  114. org.chromium.UpdateEngine.service
  115. payload_signer.cc
  116. payload_signer.h
  117. payload_signer_unittest.cc
  118. postinstall_runner_action.cc
  119. postinstall_runner_action.h
  120. postinstall_runner_action_unittest.cc
  121. prefs.cc
  122. prefs.h
  123. prefs_interface.h
  124. prefs_mock.h
  125. prefs_unittest.cc
  126. proxy_resolver.cc
  127. proxy_resolver.h
  128. SConstruct
  129. setup_dev_packages
  130. simple_key_value_store.cc
  131. simple_key_value_store.h
  132. simple_key_value_store_unittest.cc
  133. subprocess.cc
  134. subprocess.h
  135. subprocess_unittest.cc
  136. tarjan.cc
  137. tarjan.h
  138. tarjan_unittest.cc
  139. terminator.cc
  140. terminator.h
  141. terminator_unittest.cc
  142. test_http_server.cc
  143. test_utils.cc
  144. test_utils.h
  145. testrunner.cc
  146. topological_sort.cc
  147. topological_sort.h
  148. topological_sort_unittest.cc
  149. unittest_key.pem
  150. unittest_key2.pem
  151. update_attempter.cc
  152. update_attempter.h
  153. update_attempter_mock.h
  154. update_attempter_unittest.cc
  155. update_check_scheduler.cc
  156. update_check_scheduler.h
  157. update_check_scheduler_unittest.cc
  158. update_engine.xml
  159. update_engine_client.cc
  160. update_metadata.proto
  161. UpdateEngine.conf
  162. utils.cc
  163. utils.h
  164. utils_unittest.cc
  165. WATCHLISTS
  166. zip_unittest.cc