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

Unified Diff: remoting/base/multiple_array_input_stream.cc

Issue 4779001: Added CompoundBuffer that will be used to store data in the encoding/decoding (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 10 years, 1 month 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 | « remoting/base/multiple_array_input_stream.h ('k') | remoting/base/multiple_array_input_stream_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/base/multiple_array_input_stream.cc
diff --git a/remoting/base/multiple_array_input_stream.cc b/remoting/base/multiple_array_input_stream.cc
deleted file mode 100644
index 67aa2ff0d15a69f9f73af146b9ce896cc5c2828f..0000000000000000000000000000000000000000
--- a/remoting/base/multiple_array_input_stream.cc
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <functional>
-
-#include "base/logging.h"
-#include "net/base/io_buffer.h"
-#include "remoting/base/multiple_array_input_stream.h"
-
-namespace remoting {
-
-MultipleArrayInputStream::MultipleArrayInputStream()
- : current_buffer_(0),
- position_(0),
- last_returned_size_(0) {
-}
-
-MultipleArrayInputStream::~MultipleArrayInputStream() {
-}
-
-void MultipleArrayInputStream::AddBuffer(net::IOBuffer* buffer, int size) {
- DCHECK_EQ(position_, 0); // Haven't started reading.
- buffers_.push_back(make_scoped_refptr(
- new net::DrainableIOBuffer(buffer, size)));
-}
-
-bool MultipleArrayInputStream::Next(const void** data, int* size) {
- if (current_buffer_ < buffers_.size()) {
- // Reply with the number of bytes remaining in the current buffer.
- scoped_refptr<net::DrainableIOBuffer> buffer = buffers_[current_buffer_];
- last_returned_size_ = buffer->BytesRemaining();
- *data = buffer->data();
- *size = last_returned_size_;
-
- // After reading the current buffer then advance to the next buffer.
- buffer->DidConsume(last_returned_size_);
- ++current_buffer_;
- position_ += last_returned_size_;
- return true;
- }
-
- // We've reached the end of the stream. So reset |last_returned_size_|
- // to zero to prevent any backup request.
- // This is the same as in ArrayInputStream.
- // See google/protobuf/io/zero_copy_stream_impl_lite.cc.
- last_returned_size_ = 0;
- return false;
-}
-
-void MultipleArrayInputStream::BackUp(int count) {
- DCHECK_LE(count, last_returned_size_);
- DCHECK_GT(current_buffer_, 0u);
-
- // Rewind one buffer and rewind data offset by |count| bytes.
- --current_buffer_;
- scoped_refptr<net::DrainableIOBuffer> buffer = buffers_[current_buffer_];
- buffer->SetOffset(buffer->size() - count);
- position_ -= count;
- DCHECK_GE(position_, 0);
-}
-
-bool MultipleArrayInputStream::Skip(int count) {
- DCHECK_GE(count, 0);
- last_returned_size_ = 0;
-
- while (count && current_buffer_ < buffers_.size()) {
- scoped_refptr<net::DrainableIOBuffer> buffer = buffers_[current_buffer_];
- int read = std::min(count, buffer->BytesRemaining());
-
- // Advance the current buffer offset and position.
- buffer->DidConsume(read);
- position_ += read;
- count -= read;
-
- // If the current buffer is fully read, then advance to the next buffer.
- if (!buffer->BytesRemaining())
- ++current_buffer_;
- }
- return count == 0;
-}
-
-int64 MultipleArrayInputStream::ByteCount() const {
- return position_;
-}
-
-} // namespace remoting
« no previous file with comments | « remoting/base/multiple_array_input_stream.h ('k') | remoting/base/multiple_array_input_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698