Chromium Code Reviews

Side by Side Diff: remoting/base/compound_buffer.h

Issue 5624002: Move more code from headers to implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // CompoundBuffer implements a data buffer that is composed of several pieces, 5 // CompoundBuffer implements a data buffer that is composed of several pieces,
6 // each stored in a refcounted IOBuffer. It is needed for encoding/decoding 6 // each stored in a refcounted IOBuffer. It is needed for encoding/decoding
7 // video pipeline to represent data packet and minimize data copying. 7 // video pipeline to represent data packet and minimize data copying.
8 // It is particularly useful for splitting data between multiple RTP packets 8 // It is particularly useful for splitting data between multiple RTP packets
9 // and assembling them into one buffer on the receiving side. 9 // and assembling them into one buffer on the receiving side.
10 // 10 //
(...skipping 65 matching lines...)
76 76
77 // Clears the buffer, and initializes it with the interval from |buffer| 77 // Clears the buffer, and initializes it with the interval from |buffer|
78 // starting at |start| and ending at |end|. The data itself isn't copied. 78 // starting at |start| and ending at |end|. The data itself isn't copied.
79 void CopyFrom(const CompoundBuffer& source, int start, int end); 79 void CopyFrom(const CompoundBuffer& source, int start, int end);
80 80
81 private: 81 private:
82 friend class CompoundBufferInputStream; 82 friend class CompoundBufferInputStream;
83 83
84 struct DataChunk { 84 struct DataChunk {
85 DataChunk(net::IOBuffer* buffer, const char* start, int size); 85 DataChunk(net::IOBuffer* buffer, const char* start, int size);
86 ~DataChunk();
86 87
87 scoped_refptr<net::IOBuffer> buffer; 88 scoped_refptr<net::IOBuffer> buffer;
88 const char* start; 89 const char* start;
89 int size; 90 int size;
90 }; 91 };
91 typedef std::deque<DataChunk> DataChunkList; 92 typedef std::deque<DataChunk> DataChunkList;
92 93
93 DataChunkList chunks_; 94 DataChunkList chunks_;
94 int total_bytes_; 95 int total_bytes_;
95 bool locked_; 96 bool locked_;
(...skipping 19 matching lines...)
115 116
116 size_t current_chunk_; 117 size_t current_chunk_;
117 int current_chunk_position_; 118 int current_chunk_position_;
118 int position_; 119 int position_;
119 int last_returned_size_; 120 int last_returned_size_;
120 }; 121 };
121 122
122 } // namespace remoting 123 } // namespace remoting
123 124
124 #endif // REMOTING_BASE_COMPOUND_BUFFER_H_ 125 #endif // REMOTING_BASE_COMPOUND_BUFFER_H_
OLDNEW

Powered by Google App Engine