1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file.
4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#ifndef CLOUD_PRINT_GCP20_PROTOTYPE_CLOUD_PRINT_URL_REQUEST_CONTEXT_GETTER_H_
6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#define CLOUD_PRINT_GCP20_PROTOTYPE_CLOUD_PRINT_URL_REQUEST_CONTEXT_GETTER_H_
7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/basictypes.h"
9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "net/url_request/url_request_context_getter.h"
11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Used to return a dummy context, which lives on the message loop
13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// given in the constructor.
14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)class CloudPrintURLRequestContextGetter : public net::URLRequestContextGetter {
15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) public:
16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  // |task_runner| must not be NULL.
17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  explicit CloudPrintURLRequestContextGetter(
18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  // URLRequestContextGetter implementation.
21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE;
22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  virtual scoped_refptr<base::SingleThreadTaskRunner>
24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    GetNetworkTaskRunner() const OVERRIDE;
25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) private:
27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  virtual ~CloudPrintURLRequestContextGetter();
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_;
30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  scoped_ptr<net::URLRequestContext> context_;
31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(CloudPrintURLRequestContextGetter);
33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)};
34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif  // CLOUD_PRINT_GCP20_PROTOTYPE_CLOUD_PRINT_URL_REQUEST_CONTEXT_GETTER_H_
36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
37