// 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. #include "ppapi/c/pp_errors.h" #include "ppapi/c/private/ppb_flash_file.h" #include "ppapi/thunk/enter.h" #include "ppapi/thunk/ppb_flash_file_api.h" #include "ppapi/thunk/thunk.h" namespace ppapi { namespace thunk { namespace { bool CreateThreadAdapterForInstance(PP_Instance instance) { return true; } void ClearThreadAdapterForInstance(PP_Instance instance) { } int32_t OpenFile(PP_Instance instance, const char* path, int32_t mode, PP_FileHandle* file) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; return enter.functions()->OpenFile(instance, path, mode, file); } int32_t RenameFile(PP_Instance instance, const char* path_from, const char* path_to) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; return enter.functions()->RenameFile(instance, path_from, path_to); } int32_t DeleteFileOrDir(PP_Instance instance, const char* path, PP_Bool recursive) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; return enter.functions()->DeleteFileOrDir(instance, path, recursive); } int32_t CreateDir(PP_Instance instance, const char* path) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; return enter.functions()->CreateDir(instance, path); } int32_t QueryFile(PP_Instance instance, const char* path, PP_FileInfo* info) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; return enter.functions()->QueryFile(instance, path, info); } int32_t GetDirContents(PP_Instance instance, const char* path, PP_DirContents_Dev** contents) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; return enter.functions()->GetDirContents(instance, path, contents); } void FreeDirContents(PP_Instance instance, PP_DirContents_Dev* contents) { EnterInstanceAPI enter(instance); if (enter.succeeded()) enter.functions()->FreeDirContents(instance, contents); } int32_t CreateTemporaryFile(PP_Instance instance, PP_FileHandle* file) { EnterInstanceAPI enter(instance); if (enter.failed()) return PP_ERROR_BADARGUMENT; *file = PP_kInvalidFileHandle; return enter.functions()->CreateTemporaryFile(instance, file); } const PPB_Flash_File_ModuleLocal_3_0 g_ppb_flash_file_modulelocal_thunk_3_0 = { &CreateThreadAdapterForInstance, &ClearThreadAdapterForInstance, &OpenFile, &RenameFile, &DeleteFileOrDir, &CreateDir, &QueryFile, &GetDirContents, &FreeDirContents, &CreateTemporaryFile }; } // namespace const PPB_Flash_File_ModuleLocal_3_0* GetPPB_Flash_File_ModuleLocal_3_0_Thunk() { return &g_ppb_flash_file_modulelocal_thunk_3_0; } } // namespace thunk } // namespace ppapi