1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_
6#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_
7
8#include "base/macros.h"
9#include "base/memory/scoped_ptr.h"
10#include "net/base/request_priority.h"
11#include "net/http/http_transaction_factory.h"
12
13class DevToolsNetworkController;
14
15namespace net {
16class HttpCache;
17class HttpNetworkSession;
18class HttpTransaction;
19}
20
21// NetworkTransactionFactory wraps HttpNetworkTransactions.
22class DevToolsNetworkTransactionFactory : public net::HttpTransactionFactory {
23 public:
24  DevToolsNetworkTransactionFactory(
25      DevToolsNetworkController* controller,
26      net::HttpNetworkSession* session);
27  virtual ~DevToolsNetworkTransactionFactory();
28
29  // net::HttpTransactionFactory methods:
30  virtual int CreateTransaction(
31      net::RequestPriority priority,
32      scoped_ptr<net::HttpTransaction>* trans) OVERRIDE;
33  virtual net::HttpCache* GetCache() OVERRIDE;
34  virtual net::HttpNetworkSession* GetSession() OVERRIDE;
35
36 private:
37  DevToolsNetworkController* controller_;
38  scoped_ptr<net::HttpTransactionFactory> network_layer_;
39
40  DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkTransactionFactory);
41};
42
43#endif  // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_
44