|  | // 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. | 
|  |  | 
|  | #ifndef NET_FTP_FTP_UTIL_H_ | 
|  | #define NET_FTP_FTP_UTIL_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "base/strings/string16.h" | 
|  | #include "net/base/net_export.h" | 
|  |  | 
|  | namespace base { | 
|  | class Time; | 
|  | } | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | class NET_EXPORT_PRIVATE FtpUtil { | 
|  | public: | 
|  | // Converts Unix file path to VMS path (must be a file, and not a directory). | 
|  | static std::string UnixFilePathToVMS(const std::string& unix_path); | 
|  |  | 
|  | // Converts Unix directory path to VMS path (must be a directory). | 
|  | static std::string UnixDirectoryPathToVMS(const std::string& unix_path); | 
|  |  | 
|  | // Converts VMS path to Unix-style path. | 
|  | static std::string VMSPathToUnix(const std::string& vms_path); | 
|  |  | 
|  | // Converts abbreviated month (like Nov) to its number (in range 1-12). | 
|  | // Note: in some locales abbreviations are more than three letters long, | 
|  | // and this function also handles them correctly. | 
|  | static bool AbbreviatedMonthToNumber(const base::string16& text, int* number); | 
|  |  | 
|  | // Converts a "ls -l" date listing to time. The listing comes in three | 
|  | // columns. The first one contains month, the second one contains day | 
|  | // of month. The third one is either a time (and then we guess the year based | 
|  | // on |current_time|), or is a year (and then we don't know the time). | 
|  | static bool LsDateListingToTime(const base::string16& month, | 
|  | const base::string16& day, | 
|  | const base::string16& rest, | 
|  | const base::Time& current_time, | 
|  | base::Time* result); | 
|  |  | 
|  | // Converts a Windows date listing to time. Returns true on success. | 
|  | static bool WindowsDateListingToTime(const base::string16& date, | 
|  | const base::string16& time, | 
|  | base::Time* result); | 
|  |  | 
|  | // Skips |columns| columns from |text| (whitespace-delimited), and returns the | 
|  | // remaining part, without leading/trailing whitespace. | 
|  | static base::string16 GetStringPartAfterColumns(const base::string16& text, | 
|  | int columns); | 
|  | }; | 
|  |  | 
|  | }  // namespace net | 
|  |  | 
|  | #endif  // NET_FTP_FTP_UTIL_H_ |