android_url_request_context_getter.cc revision d78db59eb6c4cf1d61ebfc8227347b66950561ff
1/* 2 * Copyright 2010, The Android Open Source Project 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 27#include "android_url_request_context_getter.h" 28 29scoped_refptr<AndroidURLRequestContextGetter> AndroidURLRequestContextGetter::instance_ = NULL; 30 31URLRequestContext* AndroidURLRequestContextGetter::GetURLRequestContext() 32{ 33 return context_; 34} 35 36scoped_refptr<base::MessageLoopProxy> AndroidURLRequestContextGetter::GetIOMessageLoopProxy() const 37{ 38 if (!io_thread_) 39 return NULL; 40 41 if (!io_thread_->IsRunning()) { 42 base::Thread::Options options; 43 options.message_loop_type = MessageLoop::TYPE_IO; 44 if (!io_thread_->StartWithOptions(options)) { 45 io_thread_ = NULL; 46 return NULL; 47 } 48 } 49 return io_thread_->message_loop_proxy(); 50} 51 52AndroidURLRequestContextGetter* AndroidURLRequestContextGetter::Get() 53{ 54 if (!instance_) 55 instance_ = new AndroidURLRequestContextGetter; 56 return instance_; 57} 58 59void AndroidURLRequestContextGetter::SetURLRequestContext(URLRequestContext* context) 60{ 61 context_ = context; 62} 63