ftp_directory_listing_parser.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1// Copyright (c) 2011 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_DIRECTORY_LISTING_PARSER_H_ 6#define NET_FTP_FTP_DIRECTORY_LISTING_PARSER_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/basictypes.h" 12#include "base/strings/string16.h" 13#include "base/time/time.h" 14#include "net/base/net_export.h" 15 16namespace net { 17 18struct FtpDirectoryListingEntry { 19 enum Type { 20 UNKNOWN, 21 FILE, 22 DIRECTORY, 23 SYMLINK, 24 }; 25 26 FtpDirectoryListingEntry(); 27 28 Type type; 29 base::string16 name; // Name (UTF-16-encoded). 30 std::string raw_name; // Name in original character encoding. 31 int64 size; // File size, in bytes. -1 if not applicable. 32 33 // Last modified time, in local time zone. 34 base::Time last_modified; 35}; 36 37// Parses an FTP directory listing |text|. On success fills in |entries|. 38// Returns network error code. 39NET_EXPORT int ParseFtpDirectoryListing( 40 const std::string& text, 41 const base::Time& current_time, 42 std::vector<FtpDirectoryListingEntry>* entries); 43 44} // namespace net 45 46#endif // NET_FTP_FTP_DIRECTORY_LISTING_PARSER_H_ 47