Move file_wrapper.h to rtc_base/system/

This moves it from an API directory (system_wrappers/include/) to a
non-API directory, which is exactly what we want for utilities like
this.

BUG=webrtc:8445

Change-Id: I440974da4d347b09ff042478720d7983056b62b9
Reviewed-on: https://webrtc-review.googlesource.com/21226
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22579}
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
index 1295294..28ba7d3 100644
--- a/modules/audio_coding/BUILD.gn
+++ b/modules/audio_coding/BUILD.gn
@@ -971,6 +971,7 @@
     "../../rtc_base:checks",
     "../../rtc_base:protobuf_utils",
     "../../rtc_base:rtc_base_approved",
+    "../../rtc_base/system:file_wrapper",
     "../../system_wrappers",
     "../../system_wrappers:field_trial_api",
   ]
diff --git a/modules/audio_coding/audio_network_adaptor/debug_dump_writer.h b/modules/audio_coding/audio_network_adaptor/debug_dump_writer.h
index e40c832..b464eb6 100644
--- a/modules/audio_coding/audio_network_adaptor/debug_dump_writer.h
+++ b/modules/audio_coding/audio_network_adaptor/debug_dump_writer.h
@@ -17,7 +17,7 @@
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/ignore_wundef.h"
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #if WEBRTC_ENABLE_PROTOBUF
 RTC_PUSH_IGNORING_WUNDEF()
 #ifdef WEBRTC_ANDROID_PLATFORM_BUILD
diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn
index 6cc9b20..bfa095b 100644
--- a/modules/audio_device/BUILD.gn
+++ b/modules/audio_device/BUILD.gn
@@ -187,6 +187,7 @@
     "../../rtc_base:deprecation",
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_task_queue",
+    "../../rtc_base/system:file_wrapper",
     "../../system_wrappers",
     "../../system_wrappers:metrics_api",
     "../utility",
diff --git a/modules/audio_device/dummy/file_audio_device.h b/modules/audio_device/dummy/file_audio_device.h
index 1a7c78a..8eea38c 100644
--- a/modules/audio_device/dummy/file_audio_device.h
+++ b/modules/audio_device/dummy/file_audio_device.h
@@ -18,8 +18,8 @@
 
 #include "modules/audio_device/audio_device_generic.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "rtc_base/timeutils.h"
-#include "system_wrappers/include/file_wrapper.h"
 
 namespace rtc {
 class PlatformThread;
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 09b0bd4..c05e6ea 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -137,6 +137,7 @@
     "../../rtc_base:protobuf_utils",
     "../../rtc_base:safe_minmax",
     "../../rtc_base:sanitizer",
+    "../../rtc_base/system:file_wrapper",
     "../../system_wrappers:cpu_features_api",
     "../../system_wrappers:field_trial_api",
     "../../system_wrappers:metrics_api",
@@ -539,6 +540,7 @@
       "../../rtc_base:rtc_base",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:safe_minmax",
+      "../../rtc_base/system:file_wrapper",
       "../../system_wrappers",
       "../../system_wrappers:cpu_features_api",
       "../../test:fileutils",
@@ -766,6 +768,7 @@
       "../..:webrtc_common",
       "../../common_audio:common_audio",
       "../../rtc_base:rtc_base_approved",
+      "../../rtc_base/system:file_wrapper",
       "../../system_wrappers",
       "../../system_wrappers:metrics_default",
       "../../test:fileutils",
@@ -785,6 +788,7 @@
       ":audio_processing",
       "../..:typedefs",
       "../..:webrtc_common",
+      "../../rtc_base/system:file_wrapper",
       "../../system_wrappers",
       "../../system_wrappers:metrics_default",
     ]
diff --git a/modules/audio_processing/aec_dump/BUILD.gn b/modules/audio_processing/aec_dump/BUILD.gn
index 7afaaf4..4e9af38 100644
--- a/modules/audio_processing/aec_dump/BUILD.gn
+++ b/modules/audio_processing/aec_dump/BUILD.gn
@@ -68,6 +68,7 @@
       "../../../rtc_base:protobuf_utils",
       "../../../rtc_base:rtc_base_approved",
       "../../../rtc_base:rtc_task_queue",
+      "../../../rtc_base/system:file_wrapper",
       "../../../system_wrappers",
     ]
 
diff --git a/modules/audio_processing/aec_dump/aec_dump_impl.h b/modules/audio_processing/aec_dump/aec_dump_impl.h
index 36d72e9..8ff3398 100644
--- a/modules/audio_processing/aec_dump/aec_dump_impl.h
+++ b/modules/audio_processing/aec_dump/aec_dump_impl.h
@@ -22,9 +22,9 @@
 #include "rtc_base/ignore_wundef.h"
 #include "rtc_base/platform_file.h"
 #include "rtc_base/race_checker.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/thread_annotations.h"
-#include "system_wrappers/include/file_wrapper.h"
 
 // Files generated at build-time by the protobuf compiler.
 RTC_PUSH_IGNORING_WUNDEF()
diff --git a/modules/audio_processing/aec_dump/write_to_file_task.h b/modules/audio_processing/aec_dump/write_to_file_task.h
index 7301473..711afb2 100644
--- a/modules/audio_processing/aec_dump/write_to_file_task.h
+++ b/modules/audio_processing/aec_dump/write_to_file_task.h
@@ -19,8 +19,8 @@
 #include "rtc_base/event.h"
 #include "rtc_base/ignore_wundef.h"
 #include "rtc_base/platform_file.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "rtc_base/task_queue.h"
-#include "system_wrappers/include/file_wrapper.h"
 
 // Files generated at build-time by the protobuf compiler.
 RTC_PUSH_IGNORING_WUNDEF()
diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc
index 554dead..27388ea 100644
--- a/modules/audio_processing/audio_processing_impl.cc
+++ b/modules/audio_processing/audio_processing_impl.cc
@@ -45,7 +45,7 @@
 #include "modules/audio_processing/voice_detection_impl.h"
 #include "modules/include/module_common_types.h"
 #include "rtc_base/atomicops.h"
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "system_wrappers/include/metrics.h"
 
 // Check to verify that the define for the intelligibility enhancer is properly
diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h
index 55c47ac..3724090 100644
--- a/modules/audio_processing/audio_processing_impl.h
+++ b/modules/audio_processing/audio_processing_impl.h
@@ -26,8 +26,8 @@
 #include "rtc_base/ignore_wundef.h"
 #include "rtc_base/protobuf_utils.h"
 #include "rtc_base/swap_queue.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "rtc_base/thread_annotations.h"
-#include "system_wrappers/include/file_wrapper.h"
 
 namespace webrtc {
 
diff --git a/modules/audio_processing/transient/click_annotate.cc b/modules/audio_processing/transient/click_annotate.cc
index a8b4a30..1f01d01 100644
--- a/modules/audio_processing/transient/click_annotate.cc
+++ b/modules/audio_processing/transient/click_annotate.cc
@@ -14,9 +14,9 @@
 #include <memory>
 #include <vector>
 
-#include "modules/audio_processing/transient/transient_detector.h"
 #include "modules/audio_processing/transient/file_utils.h"
-#include "system_wrappers/include/file_wrapper.h"
+#include "modules/audio_processing/transient/transient_detector.h"
+#include "rtc_base/system/file_wrapper.h"
 
 using webrtc::FileWrapper;
 using webrtc::TransientDetector;
diff --git a/modules/audio_processing/transient/file_utils.cc b/modules/audio_processing/transient/file_utils.cc
index 7bf2e08..40732b9 100644
--- a/modules/audio_processing/transient/file_utils.cc
+++ b/modules/audio_processing/transient/file_utils.cc
@@ -12,7 +12,7 @@
 
 #include <memory>
 
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "typedefs.h"  // NOLINT(build/include)
 
 namespace webrtc {
diff --git a/modules/audio_processing/transient/file_utils.h b/modules/audio_processing/transient/file_utils.h
index 3f05c1d..4b04fac 100644
--- a/modules/audio_processing/transient/file_utils.h
+++ b/modules/audio_processing/transient/file_utils.h
@@ -13,7 +13,7 @@
 
 #include <string.h>
 
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "typedefs.h"  // NOLINT(build/include)
 
 namespace webrtc {
diff --git a/modules/audio_processing/transient/file_utils_unittest.cc b/modules/audio_processing/transient/file_utils_unittest.cc
index c5e0399..d9880f9 100644
--- a/modules/audio_processing/transient/file_utils_unittest.cc
+++ b/modules/audio_processing/transient/file_utils_unittest.cc
@@ -15,7 +15,7 @@
 #include <memory>
 #include <vector>
 
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 #include "typedefs.h"  // NOLINT(build/include)
diff --git a/modules/audio_processing/transient/transient_detector_unittest.cc b/modules/audio_processing/transient/transient_detector_unittest.cc
index 96af179..8f60954 100644
--- a/modules/audio_processing/transient/transient_detector_unittest.cc
+++ b/modules/audio_processing/transient/transient_detector_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "modules/audio_processing/transient/common.h"
 #include "modules/audio_processing/transient/file_utils.h"
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 #include "typedefs.h"  // NOLINT(build/include)
diff --git a/modules/audio_processing/transient/wpd_tree_unittest.cc b/modules/audio_processing/transient/wpd_tree_unittest.cc
index a90af77..02c7f51 100644
--- a/modules/audio_processing/transient/wpd_tree_unittest.cc
+++ b/modules/audio_processing/transient/wpd_tree_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "modules/audio_processing/transient/daubechies_8_wavelet_coeffs.h"
 #include "modules/audio_processing/transient/file_utils.h"
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/rtc_base/system/BUILD.gn b/rtc_base/system/BUILD.gn
index 05891b9..a3dc4c1 100644
--- a/rtc_base/system/BUILD.gn
+++ b/rtc_base/system/BUILD.gn
@@ -23,3 +23,16 @@
     "fallthrough.h",
   ]
 }
+
+rtc_source_set("file_wrapper") {
+  sources = [
+    "file_wrapper.cc",
+    "file_wrapper.h",
+  ]
+  deps = [
+    "..:checks",
+    "..:criticalsection",
+    "../..:typedefs",
+    "../..:webrtc_common",
+  ]
+}
diff --git a/system_wrappers/source/file_impl.cc b/rtc_base/system/file_wrapper.cc
similarity index 97%
rename from system_wrappers/source/file_impl.cc
rename to rtc_base/system/file_wrapper.cc
index 350aaeb..72f5f25 100644
--- a/system_wrappers/source/file_impl.cc
+++ b/rtc_base/system/file_wrapper.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "system_wrappers/include/file_wrapper.h"
+#include "rtc_base/system/file_wrapper.h"
 
 #ifdef _WIN32
 #include <Windows.h>
@@ -17,6 +17,8 @@
 #include <string.h>
 #endif
 
+#include <utility>
+
 #include "rtc_base/checks.h"
 
 namespace webrtc {
diff --git a/system_wrappers/include/file_wrapper.h b/rtc_base/system/file_wrapper.h
similarity index 94%
rename from system_wrappers/include/file_wrapper.h
rename to rtc_base/system/file_wrapper.h
index 143da13..85fb3fb 100644
--- a/system_wrappers/include/file_wrapper.h
+++ b/rtc_base/system/file_wrapper.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef SYSTEM_WRAPPERS_INCLUDE_FILE_WRAPPER_H_
-#define SYSTEM_WRAPPERS_INCLUDE_FILE_WRAPPER_H_
+#ifndef RTC_BASE_SYSTEM_FILE_WRAPPER_H_
+#define RTC_BASE_SYSTEM_FILE_WRAPPER_H_
 
 #include <stddef.h>
 #include <stdio.h>
@@ -85,4 +85,4 @@
 
 }  // namespace webrtc
 
-#endif  // SYSTEM_WRAPPERS_INCLUDE_FILE_WRAPPER_H_
+#endif  // RTC_BASE_SYSTEM_FILE_WRAPPER_H_
diff --git a/system_wrappers/BUILD.gn b/system_wrappers/BUILD.gn
index ca0dff1..03e918d 100644
--- a/system_wrappers/BUILD.gn
+++ b/system_wrappers/BUILD.gn
@@ -18,7 +18,6 @@
     "include/clock.h",
     "include/cpu_info.h",
     "include/event_wrapper.h",
-    "include/file_wrapper.h",
     "include/ntp_time.h",
     "include/rtp_to_ntp_estimator.h",
     "include/rw_lock_wrapper.h",
@@ -31,7 +30,6 @@
     "source/event_timer_posix.h",
     "source/event_timer_win.cc",
     "source/event_timer_win.h",
-    "source/file_impl.cc",
     "source/rtp_to_ntp_estimator.cc",
     "source/rw_lock.cc",
     "source/rw_lock_posix.cc",