|  | // Copyright 2014 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. | 
|  |  | 
|  | #ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_ | 
|  | #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_ | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "base/memory/scoped_ptr.h" | 
|  | #include "net/base/request_priority.h" | 
|  | #include "net/http/http_transaction_factory.h" | 
|  |  | 
|  | class DevToolsNetworkController; | 
|  |  | 
|  | namespace net { | 
|  | class HttpCache; | 
|  | class HttpNetworkSession; | 
|  | class HttpTransaction; | 
|  | } | 
|  |  | 
|  | // NetworkTransactionFactory wraps HttpNetworkTransactions. | 
|  | class DevToolsNetworkTransactionFactory : public net::HttpTransactionFactory { | 
|  | public: | 
|  | DevToolsNetworkTransactionFactory( | 
|  | DevToolsNetworkController* controller, | 
|  | net::HttpNetworkSession* session); | 
|  | ~DevToolsNetworkTransactionFactory() override; | 
|  |  | 
|  | // net::HttpTransactionFactory methods: | 
|  | int CreateTransaction(net::RequestPriority priority, | 
|  | scoped_ptr<net::HttpTransaction>* trans) override; | 
|  | net::HttpCache* GetCache() override; | 
|  | net::HttpNetworkSession* GetSession() override; | 
|  |  | 
|  | private: | 
|  | DevToolsNetworkController* controller_; | 
|  | scoped_ptr<net::HttpTransactionFactory> network_layer_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkTransactionFactory); | 
|  | }; | 
|  |  | 
|  | #endif  // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_ |