• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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