Elim cr-checkbox
[chromium-blink-merge.git] / ppapi / proxy / flash_file_resource.h
blobea35152c8f66a8057537894da4b6de5a1dd4f755
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 #ifndef PPAPI_PROXY_FLASH_FILE_RESOURCE_H_
6 #define PPAPI_PROXY_FLASH_FILE_RESOURCE_H_
8 #include <string>
10 #include "ppapi/proxy/connection.h"
11 #include "ppapi/proxy/plugin_resource.h"
12 #include "ppapi/shared_impl/file_path.h"
13 #include "ppapi/thunk/ppb_flash_file_api.h"
15 namespace ppapi {
16 namespace proxy {
18 class FlashFileResource
19 : public PluginResource,
20 public thunk::PPB_Flash_File_API {
21 public:
22 FlashFileResource(Connection connection, PP_Instance instance);
23 ~FlashFileResource() override;
25 // Resource overrides.
26 thunk::PPB_Flash_File_API* AsPPB_Flash_File_API() override;
28 // PPB_Flash_Functions_API.
29 int32_t OpenFile(PP_Instance instance,
30 const char* path,
31 int32_t mode,
32 PP_FileHandle* file) override;
33 int32_t RenameFile(PP_Instance instance,
34 const char* path_from,
35 const char* path_to) override;
36 int32_t DeleteFileOrDir(PP_Instance instance,
37 const char* path,
38 PP_Bool recursive) override;
39 int32_t CreateDir(PP_Instance instance, const char* path) override;
40 int32_t QueryFile(PP_Instance instance,
41 const char* path,
42 PP_FileInfo* info) override;
43 int32_t GetDirContents(PP_Instance instance,
44 const char* path,
45 PP_DirContents_Dev** contents) override;
46 void FreeDirContents(PP_Instance instance,
47 PP_DirContents_Dev* contents) override;
48 int32_t CreateTemporaryFile(PP_Instance instance,
49 PP_FileHandle* file) override;
50 int32_t OpenFileRef(PP_Instance instance,
51 PP_Resource file_ref,
52 int32_t mode,
53 PP_FileHandle* file) override;
54 int32_t QueryFileRef(PP_Instance instance,
55 PP_Resource file_ref,
56 PP_FileInfo* info) override;
58 private:
59 int32_t OpenFileHelper(const std::string& path,
60 PepperFilePath::Domain domain_type,
61 int32_t mode,
62 PP_FileHandle* file);
63 int32_t QueryFileHelper(const std::string& path,
64 PepperFilePath::Domain domain_type,
65 PP_FileInfo* info);
67 DISALLOW_COPY_AND_ASSIGN(FlashFileResource);
70 } // namespace proxy
71 } // namespace ppapi
73 #endif // PPAPI_PROXY_FLASH_FILE_RESOURCE_H_