Home | History | Annotate | Download | only in c
      1 /* Copyright (c) 2012 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 
      6 /* From pp_file_info.idl modified Thu May  2 16:41:50 2013. */
      7 
      8 #ifndef PPAPI_C_PP_FILE_INFO_H_
      9 #define PPAPI_C_PP_FILE_INFO_H_
     10 
     11 #include "ppapi/c/pp_macros.h"
     12 #include "ppapi/c/pp_stdint.h"
     13 #include "ppapi/c/pp_time.h"
     14 
     15 /**
     16  * @file
     17  * This file defines three enumerations for use in the PPAPI C file IO APIs.
     18  */
     19 
     20 
     21 /**
     22  * @addtogroup Enums
     23  * @{
     24  */
     25 /**
     26  * The <code>PP_FileType</code> enum contains file type constants.
     27  */
     28 typedef enum {
     29   /** A regular file type */
     30   PP_FILETYPE_REGULAR = 0,
     31   /** A directory */
     32   PP_FILETYPE_DIRECTORY = 1,
     33   /** A catch-all for unidentified types */
     34   PP_FILETYPE_OTHER = 2
     35 } PP_FileType;
     36 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileType, 4);
     37 
     38 /**
     39  * The <code>PP_FileSystemType</code> enum contains file system type constants.
     40  */
     41 typedef enum {
     42   /** For identified invalid return values */
     43   PP_FILESYSTEMTYPE_INVALID = 0,
     44   /** For external file system types */
     45   PP_FILESYSTEMTYPE_EXTERNAL = 1,
     46   /** For local persistent file system types */
     47   PP_FILESYSTEMTYPE_LOCALPERSISTENT = 2,
     48   /** For local temporary file system types */
     49   PP_FILESYSTEMTYPE_LOCALTEMPORARY = 3,
     50   /** For isolated file system types */
     51   PP_FILESYSTEMTYPE_ISOLATED = 4
     52 } PP_FileSystemType;
     53 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileSystemType, 4);
     54 /**
     55  * @}
     56  */
     57 
     58 /**
     59  * @addtogroup Structs
     60  * @{
     61  */
     62 /**
     63  * The <code>PP_FileInfo</code> struct represents all information about a file,
     64  * such as size, type, and creation time.
     65  */
     66 struct PP_FileInfo {
     67   /** This value represents the size of the file measured in bytes */
     68   int64_t size;
     69   /**
     70    * This value represents the type of file as defined by the
     71    * <code>PP_FileType</code> enum
     72    */
     73   PP_FileType type;
     74   /**
     75    * This value represents the file system type of the file as defined by the
     76    * <code>PP_FileSystemType</code> enum.
     77    */
     78   PP_FileSystemType system_type;
     79   /**
     80    * This value represents the creation time of the file.
     81    */
     82   PP_Time creation_time;
     83   /**
     84    * This value represents the last time the file was accessed.
     85    */
     86   PP_Time last_access_time;
     87   /**
     88    * This value represents the last time the file was modified.
     89    */
     90   PP_Time last_modified_time;
     91 };
     92 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FileInfo, 40);
     93 /**
     94  * @}
     95  */
     96 
     97 #endif  /* PPAPI_C_PP_FILE_INFO_H_ */
     98 
     99