/* 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. */ /* From pp_file_info.idl modified Thu May 2 16:41:50 2013. */ #ifndef PPAPI_C_PP_FILE_INFO_H_ #define PPAPI_C_PP_FILE_INFO_H_ #include "ppapi/c/pp_macros.h" #include "ppapi/c/pp_stdint.h" #include "ppapi/c/pp_time.h" /** * @file * This file defines three enumerations for use in the PPAPI C file IO APIs. */ /** * @addtogroup Enums * @{ */ /** * The <code>PP_FileType</code> enum contains file type constants. */ typedef enum { /** A regular file type */ PP_FILETYPE_REGULAR = 0, /** A directory */ PP_FILETYPE_DIRECTORY = 1, /** A catch-all for unidentified types */ PP_FILETYPE_OTHER = 2 } PP_FileType; PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileType, 4); /** * The <code>PP_FileSystemType</code> enum contains file system type constants. */ typedef enum { /** 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 } PP_FileSystemType; PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileSystemType, 4); /** * @} */ /** * @addtogroup Structs * @{ */ /** * The <code>PP_FileInfo</code> struct represents all information about a file, * such as size, type, and creation time. */ 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; }; PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FileInfo, 40); /** * @} */ #endif /* PPAPI_C_PP_FILE_INFO_H_ */