1 // Copyright (c) 2011 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_FTP_FTP_NETWORK_LAYER_H_ 6 #define NET_FTP_FTP_NETWORK_LAYER_H_ 7 #pragma once 8 9 #include "base/memory/ref_counted.h" 10 #include "net/ftp/ftp_transaction_factory.h" 11 12 namespace net { 13 14 class FtpNetworkSession; 15 class HostResolver; 16 17 class FtpNetworkLayer : public FtpTransactionFactory { 18 public: 19 explicit FtpNetworkLayer(HostResolver* host_resolver); 20 ~FtpNetworkLayer(); 21 22 static FtpTransactionFactory* CreateFactory(HostResolver* host_resolver); 23 24 // FtpTransactionFactory methods: 25 virtual FtpTransaction* CreateTransaction(); 26 virtual void Suspend(bool suspend); 27 28 private: 29 scoped_refptr<FtpNetworkSession> session_; 30 bool suspended_; 31 }; 32 33 } // namespace net 34 35 #endif // NET_FTP_FTP_NETWORK_LAYER_H_ 36