- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / thunk / ppb_flash_file_api.h
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.
4
5 #ifndef PPAPI_THUNK_PPB_FLASH_FILE_API_H_
6 #define PPAPI_THUNK_PPB_FLASH_FILE_API_H_
7
8 #include "ppapi/c/pp_bool.h"
9 #include "ppapi/c/pp_stdint.h"
10 #include "ppapi/c/private/pp_file_handle.h"
11 #include "ppapi/c/private/ppb_flash_file.h"
12 #include "ppapi/shared_impl/singleton_resource_id.h"
13 #include "ppapi/thunk/ppapi_thunk_export.h"
14
15 struct PP_FileInfo;
16
17 namespace ppapi {
18 namespace thunk {
19
20 class PPAPI_THUNK_EXPORT PPB_Flash_File_API {
21  public:
22   virtual ~PPB_Flash_File_API() {}
23
24   // FlashFile_ModuleLocal.
25   virtual int32_t OpenFile(PP_Instance instance,
26                            const char* path,
27                            int32_t mode,
28                            PP_FileHandle* file) = 0;
29   virtual int32_t RenameFile(PP_Instance instance,
30                              const char* path_from,
31                              const char* path_to) = 0;
32   virtual int32_t DeleteFileOrDir(PP_Instance instance,
33                                   const char* path,
34                                   PP_Bool recursive) = 0;
35   virtual int32_t CreateDir(PP_Instance instance, const char* path) = 0;
36   virtual int32_t QueryFile(PP_Instance instance,
37                             const char* path,
38                             PP_FileInfo* info) = 0;
39   virtual int32_t GetDirContents(PP_Instance instance,
40                                  const char* path,
41                                  PP_DirContents_Dev** contents) = 0;
42   virtual void FreeDirContents(PP_Instance instance,
43                                PP_DirContents_Dev* contents) = 0;
44   virtual int32_t CreateTemporaryFile(PP_Instance instance,
45                                       PP_FileHandle* file) = 0;
46
47   // FlashFile_FileRef.
48   virtual int32_t OpenFileRef(PP_Instance instance,
49                               PP_Resource file_ref,
50                               int32_t mode,
51                               PP_FileHandle* file) = 0;
52   virtual int32_t QueryFileRef(PP_Instance instance,
53                                PP_Resource file_ref,
54                                PP_FileInfo* info) = 0;
55
56   static const SingletonResourceID kSingletonResourceID =
57       FLASH_FILE_SINGLETON_ID;
58 };
59
60 }  // namespace thunk
61 }  // namespace ppapi
62
63 #endif // PPAPI_THUNK_PPB_FLASH_FILE_API_H_