| Index: experimental/conways_life/web_resource_loader_inl.h
|
| diff --git a/experimental/conways_life/web_resource_loader_inl.h b/experimental/conways_life/web_resource_loader_inl.h
|
| deleted file mode 100644
|
| index 19b3f2e0acebdfd0a6b58fbc4a6f87534dab1634..0000000000000000000000000000000000000000
|
| --- a/experimental/conways_life/web_resource_loader_inl.h
|
| +++ /dev/null
|
| @@ -1,184 +0,0 @@
|
| -// Copyright (c) 2011 The Native Client Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef WEB_RESOURCE_LOADER_INL_H_
|
| -#define WEB_RESOURCE_LOADER_INL_H_
|
| -
|
| -#include "experimental/conways_life/web_resource_loader.h"
|
| -
|
| -#include <stdio.h>
|
| -#include <cassert>
|
| -#include <string>
|
| -#include "ppapi/c/pp_errors.h"
|
| -#include "ppapi/cpp/module.h"
|
| -#include "ppapi/cpp/url_loader.h"
|
| -#include "ppapi/cpp/url_request_info.h"
|
| -#include "ppapi/cpp/url_response_info.h"
|
| -
|
| -namespace life {
|
| -
|
| -template <class Delegate>
|
| -WebResourceLoader<Delegate>::WebResourceLoader(pp::Instance* instance,
|
| - Delegate* delegate)
|
| - : factory_(this),
|
| - instance_(instance),
|
| - url_loader_(*instance),
|
| - connected_(false),
|
| - buffer_(NULL),
|
| - buffer_size_(0),
|
| - data_size_(0),
|
| - delegate_(delegate) {
|
| - assert(delegate != NULL);
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::CloseAndDeleteSelf() {
|
| - // Can't close & delete this instance here. Instead, we schedule a main-thread
|
| - // callback to delete it later.
|
| - pp::CompletionCallback cc(DeleteOnMainThread, this);
|
| - pp::Module::Get()->core()->CallOnMainThread(0, cc, PP_OK);
|
| -}
|
| -
|
| -template <class Delegate>
|
| -WebResourceLoader<Delegate>::~WebResourceLoader() {
|
| - Close();
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::LoadURL(const std::string& url) {
|
| - // Check that there is no pending request.
|
| - assert(!connected_);
|
| - assert(url_loader_.GetResponseInfo().is_null());
|
| - // Only usable from main plugin thread.
|
| - pp::CompletionCallback cc = factory_.NewCallback(
|
| - &WebResourceLoader<Delegate>::StartDownload, std::string(url));
|
| - pp::Module::Get()->core()->CallOnMainThread(0, cc, PP_OK);
|
| -}
|
| -
|
| -template <class Delegate>
|
| -const std::string WebResourceLoader<Delegate>::url() const {
|
| - pp::URLResponseInfo response = url_loader_.GetResponseInfo();
|
| - return response.GetURL().AsString();
|
| -}
|
| -
|
| -template <class Delegate>
|
| -int32_t WebResourceLoader<Delegate>::GetHttpStatus() const {
|
| - return GetResponseInfo().GetStatusCode();
|
| -}
|
| -
|
| -template <class Delegate>
|
| -pp::URLResponseInfo WebResourceLoader<Delegate>::GetResponseInfo() const {
|
| - pp::URLResponseInfo response = url_loader_.GetResponseInfo();
|
| - assert(!response.is_null());
|
| - return response;
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::Close() {
|
| - assert(pp::Module::Get()->core()->IsMainThread());
|
| - connected_ = false;
|
| - buffer_ = NULL;
|
| - buffer_size_ = 0;
|
| - data_size_ = 0;
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::CompletionCallbackFunc(
|
| - int32_t result, DispatchOpCode op_code) {
|
| - if (result < 0) {
|
| - // A negative value indicates an error.
|
| - delegate_->OnWebResourceLoaderError(result, this);
|
| - delegate_->OnWebResourceLoaderDone(this);
|
| - } else if (result == PP_OK && !connected_) {
|
| - assert(op_code == kUrlResponseInfoReady);
|
| - // If we're not yet connected and get result == PP_OK, then we received
|
| - // the http headers.
|
| - connected_ = true;
|
| - pp::URLResponseInfo response = url_loader_.GetResponseInfo();
|
| - if (delegate_->OnWebResourceLoaderCallback(kUrlResponseInfoReady, this)) {
|
| - ReadNextDataBlock();
|
| - } else {
|
| - delegate_->OnWebResourceLoaderDone(this);
|
| - }
|
| - } else {
|
| - assert(op_code == kDataReceived);
|
| - if (result == 0) {
|
| - // No more data; the download completed successfully.
|
| - data_size_ = 0;
|
| - delegate_->OnWebResourceLoaderCallback(kDownloadComplete, this);
|
| - delegate_->OnWebResourceLoaderDone(this);
|
| - } else {
|
| - // We received a block of data of size |result|.
|
| - data_size_ = result;
|
| - if (delegate_->OnWebResourceLoaderCallback(kDataReceived, this)) {
|
| - ReadNextDataBlock();
|
| - } else {
|
| - delegate_->OnWebResourceLoaderDone(this);
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -template <class Delegate>
|
| -pp::CompletionCallback WebResourceLoader<Delegate>::MakeCallback(
|
| - DispatchOpCode op_code) {
|
| - return factory_.NewCallback(
|
| - &WebResourceLoader<Delegate>::CompletionCallbackFunc, op_code);
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::InitializeRequest(
|
| - const std::string& url,
|
| - pp::URLRequestInfo* request) {
|
| - request->SetURL(url);
|
| - request->SetMethod("GET");
|
| - request->SetFollowRedirects(true);
|
| - request->SetStreamToFile(false);
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::ReadNextDataBlock() {
|
| - // If a custom buffer has not been set or has been set to NULL, use the
|
| - // internal buffer.
|
| - if (buffer_ == NULL) {
|
| - buffer_ = internal_buffer_;
|
| - buffer_size_ = kInternalBufferSize;
|
| - }
|
| - // Get the next block of data.
|
| - pp::CompletionCallback cc = MakeCallback(kDataReceived);
|
| - int32_t rv = url_loader_.ReadResponseBody(buffer_, buffer_size_, cc);
|
| - if (rv != PP_OK_COMPLETIONPENDING) {
|
| - cc.Run(rv);
|
| - }
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::StartDownload(int32_t result,
|
| - const std::string& url) {
|
| - // Only usable from main plugin thread.
|
| - assert(pp::Module::Get()->core()->IsMainThread());
|
| -
|
| - pp::CompletionCallback cc = MakeCallback(kUrlResponseInfoReady);
|
| - pp::URLRequestInfo request(instance_);
|
| - InitializeRequest(url, &request);
|
| - int32_t rv = url_loader_.Open(request, cc);
|
| - if (rv != PP_OK_COMPLETIONPENDING) {
|
| - // Getting here isn't necessarily an error. It indicates that the call to
|
| - // Open did not take place asynchronously. That can happen, for instance,
|
| - // when the resource data comes out of the cache. In any case, we simply
|
| - // invoke the callback 'manually.'
|
| - cc.Run(rv);
|
| - }
|
| -}
|
| -
|
| -template <class Delegate>
|
| -void WebResourceLoader<Delegate>::DeleteOnMainThread(void* user_data,
|
| - int32_t err) {
|
| - WebResourceLoader* loader = reinterpret_cast<WebResourceLoader*>(user_data);
|
| - if (loader != NULL) delete loader;
|
| -}
|
| -
|
| -} // namespace life
|
| -
|
| -#endif // WEB_RESOURCE_LOADER_INL_H_
|
|
|