New class FileRotatingStreamReader

When landed, the FileRotatingStream class can be made write-only.

Bug: webrtc:7811
Change-Id: I6dcd2a869301b9b8273b48d47df51a1065767ffd
Reviewed-on: https://webrtc-review.googlesource.com/c/115302
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26126}
diff --git a/sdk/objc/api/peerconnection/RTCFileLogger.mm b/sdk/objc/api/peerconnection/RTCFileLogger.mm
index 3a7144a..9515cfb 100644
--- a/sdk/objc/api/peerconnection/RTCFileLogger.mm
+++ b/sdk/objc/api/peerconnection/RTCFileLogger.mm
@@ -129,29 +129,24 @@
     return nil;
   }
   NSMutableData* logData = [NSMutableData data];
-  std::unique_ptr<rtc::FileRotatingStream> stream;
+  std::unique_ptr<rtc::FileRotatingStreamReader> stream;
   switch(_rotationType) {
     case RTCFileLoggerTypeApp:
-      stream.reset(
-          new rtc::FileRotatingStream(_dirPath.UTF8String,
-                                      kRTCFileLoggerRotatingLogPrefix));
+      stream = absl::make_unique<rtc::FileRotatingStreamReader>(_dirPath.UTF8String,
+                                                                kRTCFileLoggerRotatingLogPrefix);
       break;
     case RTCFileLoggerTypeCall:
-      stream.reset(new rtc::CallSessionFileRotatingStream(_dirPath.UTF8String));
+      stream = absl::make_unique<rtc::CallSessionFileRotatingStreamReader>(_dirPath.UTF8String);
       break;
   }
-  if (!stream->Open()) {
+  size_t bufferSize = stream->GetSize();
+  if (bufferSize == 0) {
     return logData;
   }
-  size_t bufferSize = 0;
-  if (!stream->GetSize(&bufferSize) || bufferSize == 0) {
-    return logData;
-  }
-  size_t read = 0;
   // Allocate memory using malloc so we can pass it direcly to NSData without
   // copying.
   std::unique_ptr<uint8_t[]> buffer(static_cast<uint8_t*>(malloc(bufferSize)));
-  stream->ReadAll(buffer.get(), bufferSize, &read, nullptr);
+  size_t read = stream->ReadAll(buffer.get(), bufferSize);
   logData = [[NSMutableData alloc] initWithBytesNoCopy:buffer.release()
                                                 length:read];
   return logData;