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 |
/////////////////////////////////////////////////////////////////////////////// |