1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this 2 // source code is governed by a BSD-style license that can be found in the 3 // LICENSE file. 4 5 #include "net/ftp/ftp_network_layer.h" 6 7 #include "net/ftp/ftp_network_session.h" 8 #include "net/ftp/ftp_network_transaction.h" 9 #include "net/socket/client_socket_factory.h" 10 11 namespace net { 12 13 FtpNetworkLayer::FtpNetworkLayer(HostResolver* host_resolver) 14 : session_(new FtpNetworkSession(host_resolver)), 15 suspended_(false) { 16 } 17 18 FtpNetworkLayer::~FtpNetworkLayer() { 19 } 20 21 // static 22 FtpTransactionFactory* FtpNetworkLayer::CreateFactory( 23 HostResolver* host_resolver) { 24 return new FtpNetworkLayer(host_resolver); 25 } 26 27 FtpTransaction* FtpNetworkLayer::CreateTransaction() { 28 if (suspended_) 29 return NULL; 30 31 return new FtpNetworkTransaction( 32 session_, ClientSocketFactory::GetDefaultFactory()); 33 } 34 35 void FtpNetworkLayer::Suspend(bool suspend) { 36 suspended_ = suspend; 37 38 /* TODO(darin): We'll need this code once we have a connection manager. 39 if (suspend) 40 session_->connection_manager()->CloseIdleSockets(); 41 */ 42 } 43 44 } // namespace net 45