Add beginnings of a custom FTP implementation.  This is built but not used or
tested yet.  This is just skeleton code.

R=wtc



git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7179 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/ftp/ftp_transaction_factory.h b/net/ftp/ftp_transaction_factory.h
new file mode 100644
index 0000000..67af6457
--- /dev/null
+++ b/net/ftp/ftp_transaction_factory.h
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Chromium Authors. All rights reserved.  Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#ifndef NET_FTP_FTP_TRANSACTION_FACTORY_H_
+#define NET_FTP_FTP_TRANSACTION_FACTORY_H_
+
+namespace net {
+
+class AuthCache;
+class FtpTransaction;
+
+// An interface to a class that can create FtpTransaction objects.
+class FtpTransactionFactory {
+ public:
+  virtual ~FtpTransactionFactory() {}
+
+  // Creates a FtpTransaction object.
+  virtual FtpTransaction* CreateTransaction() = 0;
+
+  // Returns the associated FTP auth cache if any (may be NULL).
+  virtual AuthCache* GetAuthCache() = 0;
+
+  // Suspends the creation of new transactions. If |suspend| is false, creation
+  // of new transactions is resumed.
+  virtual void Suspend(bool suspend) = 0;
+};
+
+}  // namespace net
+
+#endif  // NET_FTP_FTP_TRANSACTION_FACTORY_H_