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 14namespace net { 15 16class FtpNetworkSession; 17class HostResolver; 18 19class 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