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