Index: net/ftp/ftp_directory_listing_parser_vms.h |
diff --git a/net/ftp/ftp_directory_listing_parser_vms.h b/net/ftp/ftp_directory_listing_parser_vms.h |
index 6f7fb73a4452b97c7c3a19ea13e04141007cda95..8986fcb68bee1abcd44d9f977e050fe8b281d24a 100644 |
--- a/net/ftp/ftp_directory_listing_parser_vms.h |
+++ b/net/ftp/ftp_directory_listing_parser_vms.h |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 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. |
@@ -6,60 +6,18 @@ |
#define NET_FTP_FTP_DIRECTORY_LISTING_PARSER_VMS_H_ |
#pragma once |
-#include <queue> |
+#include <vector> |
-#include "net/ftp/ftp_directory_listing_parser.h" |
+#include "base/string16.h" |
namespace net { |
-// Parser for VMS-style directory listing (including variants). |
-class FtpDirectoryListingParserVms : public FtpDirectoryListingParser { |
- public: |
- FtpDirectoryListingParserVms(); |
- virtual ~FtpDirectoryListingParserVms(); |
+struct FtpDirectoryListingEntry; |
- // FtpDirectoryListingParser methods: |
- virtual FtpServerType GetServerType() const; |
- virtual bool ConsumeLine(const string16& line); |
- virtual bool OnEndOfInput(); |
- virtual bool EntryAvailable() const; |
- virtual FtpDirectoryListingEntry PopEntry(); |
- |
- private: |
- enum State { |
- STATE_INITIAL, |
- |
- // Indicates that we have received the header, like this: |
- // Directory SYS$SYSDEVICE:[ANONYMOUS] |
- STATE_RECEIVED_HEADER, |
- |
- // Indicates that we have received the first listing entry, like this: |
- // MADGOAT.DIR;1 2 9-MAY-2001 22:23:44.85 |
- STATE_ENTRIES, |
- |
- // Indicates that we have received the last listing entry. |
- STATE_RECEIVED_LAST_ENTRY, |
- |
- // Indicates that we have successfully received all parts of the listing. |
- STATE_END, |
- }; |
- |
- // Consumes listing line which is expected to be a directory listing entry |
- // (and not a comment etc). Returns true on success. |
- bool ConsumeEntryLine(const string16& line); |
- |
- State state_; |
- |
- // VMS can use two physical lines if the filename is long. The first line will |
- // contain the filename, and the second line everything else. Store the |
- // filename until we receive the next line. |
- string16 last_filename_; |
- bool last_is_directory_; |
- |
- std::queue<FtpDirectoryListingEntry> entries_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FtpDirectoryListingParserVms); |
-}; |
+// Parses VMS FTP directory listing. Returns true on success. |
+bool ParseFtpDirectoryListingVms( |
+ const std::vector<string16>& lines, |
+ std::vector<FtpDirectoryListingEntry>* entries); |
} // namespace net |