/* Copyright (c) 2012 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.
 */

/**
 * This file defines three enumerations for use in the PPAPI C file IO APIs.
 */

/**
 * The <code>PP_FileType</code> enum contains file type constants.
 */
[assert_size(4)]
enum PP_FileType {
  /** A regular file type */
  PP_FILETYPE_REGULAR = 0,
  /** A directory */
  PP_FILETYPE_DIRECTORY = 1,
  /** A catch-all for unidentified types */
  PP_FILETYPE_OTHER = 2
};

/**
 * The <code>PP_FileSystemType</code> enum contains file system type constants.
 */
[assert_size(4)]
enum PP_FileSystemType {
  /** For identified invalid return values */
  PP_FILESYSTEMTYPE_INVALID = 0,
  /** For external file system types */
  PP_FILESYSTEMTYPE_EXTERNAL = 1,
  /** For local persistent file system types */
  PP_FILESYSTEMTYPE_LOCALPERSISTENT = 2,
  /** For local temporary file system types */
  PP_FILESYSTEMTYPE_LOCALTEMPORARY = 3,
  /** For isolated file system types */
  PP_FILESYSTEMTYPE_ISOLATED = 4
};

/**
 * The <code>PP_FileInfo</code> struct represents all information about a file,
 * such as size, type, and creation time.
 */
[assert_size(40)]
struct PP_FileInfo {
  /** This value represents the size of the file measured in bytes */
  int64_t size;

  /**
   * This value represents the type of file as defined by the
   * <code>PP_FileType</code> enum
   */
  PP_FileType type;

  /**
   * This value represents the file system type of the file as defined by the
   * <code>PP_FileSystemType</code> enum.
   */
  PP_FileSystemType system_type;

  /**
   * This value represents the creation time of the file.
   */
  PP_Time creation_time;

  /**
   * This value represents the last time the file was accessed.
   */
  PP_Time last_access_time;

  /**
   * This value represents the last time the file was modified.
   */
  PP_Time last_modified_time;
};

