Home | History | Annotate | Download | only in ftp
      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 
     16 namespace net {
     17 
     18 struct 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.
     39 NET_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