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 NET_FAILING_HTTP_TRANSACTION_FACTORY_H_ 6 #define NET_FAILING_HTTP_TRANSACTION_FACTORY_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "net/base/net_errors.h" 10 #include "net/base/request_priority.h" 11 #include "net/http/http_transaction.h" 12 #include "net/http/http_transaction_factory.h" 13 14 namespace net { 15 16 class HttpCache; 17 class HttpNetworkSession; 18 19 // Creates transactions that always (asynchronously) return a specified 20 // error. The error is returned asynchronously, just after the transaction is 21 // started. 22 class NET_EXPORT FailingHttpTransactionFactory : public HttpTransactionFactory { 23 public: 24 // The caller must guarantee that |session| outlives this object. 25 FailingHttpTransactionFactory(HttpNetworkSession* session, Error error); 26 virtual ~FailingHttpTransactionFactory(); 27 28 // HttpTransactionFactory: 29 virtual int CreateTransaction( 30 RequestPriority priority, 31 scoped_ptr<HttpTransaction>* trans) OVERRIDE; 32 virtual HttpCache* GetCache() OVERRIDE; 33 virtual HttpNetworkSession* GetSession() OVERRIDE; 34 35 private: 36 HttpNetworkSession* session_; 37 Error error_; 38 }; 39 40 } // namespace net 41 42 #endif // NET_FAILING_HTTP_TRANSACTION_FACTORY_H_ 43