diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-11 11:23:25 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-11 11:23:25 +0000 |
commit | e19a0936b577c524ee26d506c97bd5d48521cce5 (patch) | |
tree | 7c2528effbe49016f6291dfc092646fe05f41b11 /content/browser/streams/stream.cc | |
parent | eb0e52e386277785069e84e5ab89077e43a011a6 (diff) | |
download | chromium_src-e19a0936b577c524ee26d506c97bd5d48521cce5.zip chromium_src-e19a0936b577c524ee26d506c97bd5d48521cce5.tar.gz chromium_src-e19a0936b577c524ee26d506c97bd5d48521cce5.tar.bz2 |
Revert 187230
> Implement the Stream registry in content
>
> This is the first part of the content side of the Streams api.
> See:
> https://bugs.webkit.org/show_bug.cgi?id=110194
> https://dvcs.w3.org/hg/streams-api/raw-file/tip/Overview.htm
>
> BUG=171585
>
>
> Review URL: https://chromiumcodereview.appspot.com/12335087
TBR=zork@chromium.org
Review URL: https://codereview.chromium.org/12611018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187274 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/streams/stream.cc')
-rw-r--r-- | content/browser/streams/stream.cc | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/content/browser/streams/stream.cc b/content/browser/streams/stream.cc deleted file mode 100644 index 0efec13..0000000 --- a/content/browser/streams/stream.cc +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) 2013 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 "content/browser/streams/stream.h" - -#include "base/bind.h" -#include "base/message_loop_proxy.h" -#include "content/browser/streams/stream_read_observer.h" -#include "content/browser/streams/stream_registry.h" -#include "content/browser/streams/stream_write_observer.h" -#include "net/base/io_buffer.h" - -namespace { -// Start throttling the connection at about 1MB. -const size_t kDeferSizeThreshold = 40 * 32768; -} - -namespace content { - -Stream::Stream(StreamRegistry* registry, - StreamWriteObserver* write_observer, - const GURL& security_origin, - const GURL& url) - : bytes_read_(0), - can_add_data_(true), - security_origin_(security_origin), - url_(url), - data_length_(0), - registry_(registry), - read_observer_(NULL), - write_observer_(write_observer) { - CreateByteStream(base::MessageLoopProxy::current(), - base::MessageLoopProxy::current(), - kDeferSizeThreshold, - &writer_, - &reader_); - - // Setup callback for writing. - writer_->RegisterCallback(base::Bind(&Stream::OnSpaceAvailable, this)); - reader_->RegisterCallback(base::Bind(&Stream::OnDataAvailable, this)); - - registry_->RegisterStream(this); -} - -Stream::~Stream() { -} - -bool Stream::SetReadObserver(StreamReadObserver* observer) { - if (read_observer_) - return false; - read_observer_ = observer; - return true; -} - -void Stream::RemoveReadObserver(StreamReadObserver* observer) { - DCHECK(observer == read_observer_); - read_observer_ = NULL; -} - -void Stream::AddData(scoped_refptr<net::IOBuffer> buffer, size_t size) { - can_add_data_ = writer_->Write(buffer, size); -} - -void Stream::Finalize() { - writer_->Close(DOWNLOAD_INTERRUPT_REASON_NONE); - writer_.reset(NULL); - - OnDataAvailable(); -} - -Stream::StreamState Stream::ReadRawData(net::IOBuffer* buf, - int buf_size, - int* bytes_read) { - if (!data_) { - data_length_ = 0; - bytes_read_ = 0; - ByteStreamReader::StreamState state = reader_->Read(&data_, &data_length_); - switch (state) { - case ByteStreamReader::STREAM_HAS_DATA: - break; - case ByteStreamReader::STREAM_COMPLETE: - registry_->UnregisterStream(url()); - return STREAM_COMPLETE; - case ByteStreamReader::STREAM_EMPTY: - return STREAM_EMPTY; - } - } - - size_t remaining_bytes = data_length_ - bytes_read_; - size_t to_read = - static_cast<size_t>(buf_size) < remaining_bytes ? - buf_size : remaining_bytes; - memcpy(buf->data(), data_->data() + bytes_read_, to_read); - bytes_read_ += to_read; - if (bytes_read_ >= data_length_) - data_ = NULL; - - *bytes_read = to_read; - return STREAM_HAS_DATA; -} - -void Stream::OnSpaceAvailable() { - can_add_data_ = true; - write_observer_->OnSpaceAvailable(this); -} - -void Stream::OnDataAvailable() { - read_observer_->OnDataAvailable(this); -} - -} // namespace content - |