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.
5 #include "ppapi/c/pp_errors.h"
6 #include "ppapi/c/private/ppb_flash_file.h"
7 #include "ppapi/thunk/enter.h"
8 #include "ppapi/thunk/ppb_file_ref_api.h"
9 #include "ppapi/thunk/ppb_flash_file_api.h"
10 #include "ppapi/thunk/thunk.h"
17 // Returns 0 on failure.
18 PP_Instance
GetInstanceFromFileRef(PP_Resource file_ref
) {
19 thunk::EnterResource
<thunk::PPB_FileRef_API
> enter(file_ref
, true);
22 return enter
.resource()->pp_instance();
25 int32_t OpenFile(PP_Resource file_ref_id
, int32_t mode
, PP_FileHandle
* file
) {
26 // TODO(brettw): this function should take an instance.
27 // To work around this, use the PP_Instance from the resource.
28 PP_Instance instance
= GetInstanceFromFileRef(file_ref_id
);
29 EnterInstanceAPI
<PPB_Flash_File_API
> enter(instance
);
31 return PP_ERROR_BADARGUMENT
;
32 return enter
.functions()->OpenFileRef(instance
, file_ref_id
, mode
, file
);
35 int32_t QueryFile(PP_Resource file_ref_id
, struct PP_FileInfo
* info
) {
36 // TODO(brettw): this function should take an instance.
37 // To work around this, use the PP_Instance from the resource.
38 PP_Instance instance
= GetInstanceFromFileRef(file_ref_id
);
39 EnterInstanceAPI
<PPB_Flash_File_API
> enter(instance
);
41 return PP_ERROR_BADARGUMENT
;
42 return enter
.functions()->QueryFileRef(instance
, file_ref_id
, info
);
45 const PPB_Flash_File_FileRef g_ppb_flash_file_fileref_thunk
= {
52 const PPB_Flash_File_FileRef
* GetPPB_Flash_File_FileRef_Thunk() {
53 return &g_ppb_flash_file_fileref_thunk
;