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;