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