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