Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1291)

Unified Diff: webrtc/base/stream.cc

Issue 1245143005: Remove CircularFileStream / replace it with CallSessionFileRotatingStream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Add GetSize to FileRotatingStream Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/stream.h ('k') | webrtc/base/stream_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/stream.cc
diff --git a/webrtc/base/stream.cc b/webrtc/base/stream.cc
index 3e3afa040dae9e0bf75531bc39f28a18acabaffe..e22c3d8aa4ef567ea656183cedb500af5623a539 100644
--- a/webrtc/base/stream.cc
+++ b/webrtc/base/stream.cc
@@ -517,113 +517,6 @@ void FileStream::DoClose() {
fclose(file_);
}
-CircularFileStream::CircularFileStream(size_t max_size)
- : max_write_size_(max_size),
- position_(0),
- marked_position_(max_size / 2),
- last_write_position_(0),
- read_segment_(READ_LATEST),
- read_segment_available_(0) {
-}
-
-bool CircularFileStream::Open(const std::string& filename,
- const char* mode,
- int* error) {
- if (!FileStream::Open(filename.c_str(), mode, error))
- return false;
-
- if (strchr(mode, "r") != NULL) { // Opened in read mode.
- // Check if the buffer has been overwritten and determine how to read the
- // log in time sequence.
- size_t file_size;
- GetSize(&file_size);
- if (file_size == position_) {
- // The buffer has not been overwritten yet. Read 0 .. file_size
- read_segment_ = READ_LATEST;
- read_segment_available_ = file_size;
- } else {
- // The buffer has been over written. There are three segments: The first
- // one is 0 .. marked_position_, which is the marked earliest log. The
- // second one is position_ .. file_size, which is the middle log. The
- // last one is marked_position_ .. position_, which is the latest log.
- read_segment_ = READ_MARKED;
- read_segment_available_ = marked_position_;
- last_write_position_ = position_;
- }
-
- // Read from the beginning.
- position_ = 0;
- SetPosition(position_);
- }
-
- return true;
-}
-
-StreamResult CircularFileStream::Read(void* buffer,
- size_t buffer_len,
- size_t* read,
- int* error) {
- if (read_segment_available_ == 0) {
- size_t file_size;
- switch (read_segment_) {
- case READ_MARKED: // Finished READ_MARKED and start READ_MIDDLE.
- read_segment_ = READ_MIDDLE;
- position_ = last_write_position_;
- SetPosition(position_);
- GetSize(&file_size);
- read_segment_available_ = file_size - position_;
- break;
-
- case READ_MIDDLE: // Finished READ_MIDDLE and start READ_LATEST.
- read_segment_ = READ_LATEST;
- position_ = marked_position_;
- SetPosition(position_);
- read_segment_available_ = last_write_position_ - position_;
- break;
-
- default: // Finished READ_LATEST and return EOS.
- return rtc::SR_EOS;
- }
- }
-
- size_t local_read;
- if (!read)
- read = &local_read;
-
- size_t to_read = std::min(buffer_len, read_segment_available_);
- rtc::StreamResult result =
- rtc::FileStream::Read(buffer, to_read, read, error);
- if (result == rtc::SR_SUCCESS) {
- read_segment_available_ -= *read;
- position_ += *read;
- }
- return result;
-}
-
-StreamResult CircularFileStream::Write(const void* data,
- size_t data_len,
- size_t* written,
- int* error) {
- if (position_ >= max_write_size_) {
- ASSERT(position_ == max_write_size_);
- position_ = marked_position_;
- SetPosition(position_);
- }
-
- size_t local_written;
- if (!written)
- written = &local_written;
-
- size_t to_eof = max_write_size_ - position_;
- size_t to_write = std::min(data_len, to_eof);
- rtc::StreamResult result =
- rtc::FileStream::Write(data, to_write, written, error);
- if (result == rtc::SR_SUCCESS) {
- position_ += *written;
- }
- return result;
-}
-
///////////////////////////////////////////////////////////////////////////////
// MemoryStream
///////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « webrtc/base/stream.h ('k') | webrtc/base/stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698