Home | History | Annotate | Download | only in ftp
      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