1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/* Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/* From private/ppb_isolated_file_system_private.idl, 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * modified Fri Nov 8 02:21:15 2013. 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/c/pp_completion_callback.h" 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/c/pp_instance.h" 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/c/pp_macros.h" 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/c/pp_resource.h" 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/c/pp_stdint.h" 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2 \ 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) "PPB_IsolatedFileSystem_Private;0.2" 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE \ 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/** 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @file 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/** 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @addtogroup Enums 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @{ 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/** 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * The <code>PP_IsolatedFileSystemType_Private</code> values indicate the type 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * of isolated file systems. 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)typedef enum { 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) /** Type for invalid file systems */ 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID = 0, 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) /** Type for CRX file systems */ 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX = 1, 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) /** Type for PluginPrivate file systems */ 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE = 2 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} PP_IsolatedFileSystemType_Private; 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_IsolatedFileSystemType_Private, 4); 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/** 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @} 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/** 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @addtogroup Interfaces 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @{ 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/* <code>PPB_IsolatedFileSystem_Private</code> interface */ 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct PPB_IsolatedFileSystem_Private_0_2 { 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) /** 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Open() opens a file system corresponding the given file system type. 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * When opening the CRX file system, this should be called from an extension 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * context, otherwise it will fail. 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @param[in] instance A <code>PP_Instance</code> identifying the instance 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * with the file system. 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @param[in] type A file system type as defined by 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * <code>PP_IsolatedFileSystemType_Private</code> enum. 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @param[out] file_system An output <code>PP_Resource</code> corresponding 67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * to a PPB_FileSystem. 68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon 69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * completion of Open. 70f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 71f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @return An int32_t containing an error code from <code>pp_errors.h</code>. 72f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 73f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) int32_t (*Open)(PP_Instance instance, 74f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PP_IsolatedFileSystemType_Private type, 75f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PP_Resource* file_system, 76f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) struct PP_CompletionCallback callback); 77f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 78f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 79f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)typedef struct PPB_IsolatedFileSystem_Private_0_2 80f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PPB_IsolatedFileSystem_Private; 81f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/** 82f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @} 83f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 84f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 85f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif /* PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ */ 86f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 87