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

Side by Side Diff: webrtc/base/stream.h

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 unified diff | Download patch
« no previous file with comments | « webrtc/base/logsinks.cc ('k') | webrtc/base/stream.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 411
412 protected: 412 protected:
413 virtual void DoClose(); 413 virtual void DoClose();
414 414
415 FILE* file_; 415 FILE* file_;
416 416
417 private: 417 private:
418 DISALLOW_COPY_AND_ASSIGN(FileStream); 418 DISALLOW_COPY_AND_ASSIGN(FileStream);
419 }; 419 };
420 420
421 // A stream that caps the output at a certain size, dropping content from the
422 // middle of the logical stream and maintaining equal parts of the start/end of
423 // the logical stream.
424 class CircularFileStream : public FileStream {
425 public:
426 explicit CircularFileStream(size_t max_size);
427
428 bool Open(const std::string& filename, const char* mode, int* error) override;
429 StreamResult Read(void* buffer,
430 size_t buffer_len,
431 size_t* read,
432 int* error) override;
433 StreamResult Write(const void* data,
434 size_t data_len,
435 size_t* written,
436 int* error) override;
437
438 private:
439 enum ReadSegment {
440 READ_MARKED, // Read 0 .. marked_position_
441 READ_MIDDLE, // Read position_ .. file_size
442 READ_LATEST, // Read marked_position_ .. position_ if the buffer was
443 // overwritten or 0 .. position_ otherwise.
444 };
445
446 size_t max_write_size_;
447 size_t position_;
448 size_t marked_position_;
449 size_t last_write_position_;
450 ReadSegment read_segment_;
451 size_t read_segment_available_;
452 };
453
454 /////////////////////////////////////////////////////////////////////////////// 421 ///////////////////////////////////////////////////////////////////////////////
455 // MemoryStream is a simple implementation of a StreamInterface over in-memory 422 // MemoryStream is a simple implementation of a StreamInterface over in-memory
456 // data. Data is read and written at the current seek position. Reads return 423 // data. Data is read and written at the current seek position. Reads return
457 // end-of-stream when they reach the end of data. Writes actually extend the 424 // end-of-stream when they reach the end of data. Writes actually extend the
458 // end of data mark. 425 // end of data mark.
459 /////////////////////////////////////////////////////////////////////////////// 426 ///////////////////////////////////////////////////////////////////////////////
460 427
461 class MemoryStreamBase : public StreamInterface { 428 class MemoryStreamBase : public StreamInterface {
462 public: 429 public:
463 StreamState GetState() const override; 430 StreamState GetState() const override;
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 // as a pass in parameter, it indicates data in buffer that should move to sink 694 // as a pass in parameter, it indicates data in buffer that should move to sink
728 StreamResult Flow(StreamInterface* source, 695 StreamResult Flow(StreamInterface* source,
729 char* buffer, size_t buffer_len, 696 char* buffer, size_t buffer_len,
730 StreamInterface* sink, size_t* data_len = NULL); 697 StreamInterface* sink, size_t* data_len = NULL);
731 698
732 /////////////////////////////////////////////////////////////////////////////// 699 ///////////////////////////////////////////////////////////////////////////////
733 700
734 } // namespace rtc 701 } // namespace rtc
735 702
736 #endif // WEBRTC_BASE_STREAM_H_ 703 #endif // WEBRTC_BASE_STREAM_H_
OLDNEW
« no previous file with comments | « webrtc/base/logsinks.cc ('k') | webrtc/base/stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698