/* Copyright 2013 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 private/ppb_isolated_file_system_private.idl, * modified Fri Nov 8 02:21:15 2013. */ #ifndef PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ #define PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ #include "ppapi/c/pp_completion_callback.h" #include "ppapi/c/pp_instance.h" #include "ppapi/c/pp_macros.h" #include "ppapi/c/pp_resource.h" #include "ppapi/c/pp_stdint.h" #define PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2 \ "PPB_IsolatedFileSystem_Private;0.2" #define PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE \ PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2 /** * @file */ /** * @addtogroup Enums * @{ */ /** * The PP_IsolatedFileSystemType_Private values indicate the type * of isolated file systems. */ typedef enum { /** Type for invalid file systems */ PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID = 0, /** Type for CRX file systems */ PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX = 1, /** Type for PluginPrivate file systems */ PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE = 2 } PP_IsolatedFileSystemType_Private; PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_IsolatedFileSystemType_Private, 4); /** * @} */ /** * @addtogroup Interfaces * @{ */ /* PPB_IsolatedFileSystem_Private interface */ struct PPB_IsolatedFileSystem_Private_0_2 { /** * Open() opens a file system corresponding the given file system type. * * When opening the CRX file system, this should be called from an extension * context, otherwise it will fail. * * @param[in] instance A PP_Instance identifying the instance * with the file system. * @param[in] type A file system type as defined by * PP_IsolatedFileSystemType_Private enum. * @param[out] file_system An output PP_Resource corresponding * to a PPB_FileSystem. * @param[in] callback A PP_CompletionCallback to be called upon * completion of Open. * * @return An int32_t containing an error code from pp_errors.h. */ int32_t (*Open)(PP_Instance instance, PP_IsolatedFileSystemType_Private type, PP_Resource* file_system, struct PP_CompletionCallback callback); }; typedef struct PPB_IsolatedFileSystem_Private_0_2 PPB_IsolatedFileSystem_Private; /** * @} */ #endif /* PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ */