// 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_DIRECTORY_LISTING_PARSER_H_
#define NET_FTP_FTP_DIRECTORY_LISTING_PARSER_H_

#include <string>
#include <vector>

#include "base/basictypes.h"
#include "base/strings/string16.h"
#include "base/time/time.h"
#include "net/base/net_export.h"

namespace net {

struct FtpDirectoryListingEntry {
  enum Type {
    UNKNOWN,
    FILE,
    DIRECTORY,
    SYMLINK,
  };

  FtpDirectoryListingEntry();

  Type type;
  base::string16 name;  // Name (UTF-16-encoded).
  std::string raw_name;  // Name in original character encoding.
  int64 size;  // File size, in bytes. -1 if not applicable.

  // Last modified time, in local time zone.
  base::Time last_modified;
};

// Parses an FTP directory listing |text|. On success fills in |entries|.
// Returns network error code.
NET_EXPORT int ParseFtpDirectoryListing(
    const std::string& text,
    const base::Time& current_time,
    std::vector<FtpDirectoryListingEntry>* entries);

}  // namespace net

#endif  // NET_FTP_FTP_DIRECTORY_LISTING_PARSER_H_
