1// Copyright (c) 2008 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#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 11namespace net { 12 13FtpNetworkLayer::FtpNetworkLayer(HostResolver* host_resolver) 14 : session_(new FtpNetworkSession(host_resolver)), 15 suspended_(false) { 16} 17 18FtpNetworkLayer::~FtpNetworkLayer() { 19} 20 21// static 22FtpTransactionFactory* FtpNetworkLayer::CreateFactory( 23 HostResolver* host_resolver) { 24 return new FtpNetworkLayer(host_resolver); 25} 26 27FtpTransaction* FtpNetworkLayer::CreateTransaction() { 28 if (suspended_) 29 return NULL; 30 31 return new FtpNetworkTransaction(session_.get(), 32 ClientSocketFactory::GetDefaultFactory()); 33} 34 35void 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