Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: ppapi/cpp/dev/filesystem_provider.cc

Issue 1093383002: [WIP] Provided file system from NACL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moved several modules to chromeos folder. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ppapi/cpp/dev/filesystem_provider.h ('k') | ppapi/host/resource_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 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 #include "ppapi/cpp/dev/filesystem_provider.h"
6
7 #include "ppapi/c/dev/ppb_filesystemprovider_dev.h"
8 #include "ppapi/c/pp_errors.h"
9 #include "ppapi/cpp/completion_callback.h"
10 #include "ppapi/cpp/instance.h"
11 #include "ppapi/cpp/instance_handle.h"
12 #include "ppapi/cpp/module.h"
13 #include "ppapi/cpp/module_impl.h"
14
15
16
17 namespace pp{
18
19 namespace {
20 template <> const char* interface_name<PPB_FilesystemProvider_Dev_0_1>() {
21 return PPB_FILESYSTEMPROVIDER_DEV_INTERFACE_0_1;
22 }
23 } // namespace
24
25 Filesystem_Provider_Dev::Filesystem_Provider_Dev(
26 pp::Instance* instance)
27 :associated_instance_(instance) {
28 if (has_interface<PPB_FilesystemProvider_Dev_0_1>()) {
29 PassRefFromConstructor(
30 get_interface<PPB_FilesystemProvider_Dev_0_1>()->Create(
31 associated_instance_.pp_instance() ) );
32 }
33 }
34
35 Filesystem_Provider_Dev::~Filesystem_Provider_Dev() {
36 }
37
38 bool Filesystem_Provider_Dev::IsAvailable() {
39 return has_interface<PPB_FilesystemProvider_Dev_0_1>();
40 }
41
42 int32_t Filesystem_Provider_Dev::Mount(
43 const std::string& filesystem_id,
44 const std::string& display_name,
45 bool writable, int32_t opened_files_limit,
46 const CompletionCallback& cc ) {
47 if ( has_interface<PPB_FilesystemProvider_Dev_0_1>() ) {
48 return get_interface<PPB_FilesystemProvider_Dev_0_1>()->Mount(
49 pp_resource(), pp::Var(filesystem_id).pp_var(),
50 pp::Var(display_name).pp_var(),
51 PP_FromBool(writable), opened_files_limit,
52 cc.pp_completion_callback() );
53 }
54
55 return PP_ERROR_NOINTERFACE;
56 }
57
58 int32_t Filesystem_Provider_Dev :: Unmount(
59 const std::string& filesystem_id,
60 const CompletionCallback& cc ) {
61 if( has_interface<PPB_FilesystemProvider_Dev_0_1>() ){
62 return get_interface<PPB_FilesystemProvider_Dev_0_1>()->Unmount(
63 pp_resource(), pp::Var(filesystem_id).pp_var(),
64 cc.pp_completion_callback() );
65 }
66 return PP_ERROR_NOINTERFACE ;
67 }
68
69
70 int32_t Filesystem_Provider_Dev::Notify(const VarDictionary& options_notify) {
71 if ( has_interface<PPB_FilesystemProvider_Dev_0_1>() ) {
72 return get_interface< PPB_FilesystemProvider_Dev_0_1 >()->Notify(
73 pp_resource(),options_notify.pp_var());
74 }
75 return PP_ERROR_NOINTERFACE;
76 }
77
78 int32_t Filesystem_Provider_Dev::SendSuccessResponse(
79 const PP_OperationType_Dev operation_type,
80 int32_t request_id) {
81 if ( has_interface<PPB_FilesystemProvider_Dev_0_1>()) {
82 return get_interface<PPB_FilesystemProvider_Dev_0_1>(
83 )->SendSuccessResponse(
84 pp_resource(), operation_type, request_id );
85 }
86 return PP_ERROR_NOINTERFACE;
87 }
88
89 int32_t Filesystem_Provider_Dev::SendErrorResponse(
90 const PP_OperationType_Dev& operation_type,
91 int32_t error,
92 int32_t request_id) {
93 if ( has_interface< PPB_FilesystemProvider_Dev_0_1 >() ){
94 return get_interface< PPB_FilesystemProvider_Dev_0_1 >(
95 )->SendErrorResponse(
96 pp_resource(), operation_type, error,request_id );
97 }
98 return PP_ERROR_NOINTERFACE;
99 }
100
101 int32_t Filesystem_Provider_Dev :: SendMetadataSuccessResponse(
102 const VarDictionary& metadata,
103 int32_t request_id ) {
104 if ( has_interface< PPB_FilesystemProvider_Dev_0_1>() ) {
105 return get_interface< PPB_FilesystemProvider_Dev_0_1 > (
106 )->SendMetadataSuccessResponse(
107 pp_resource(), metadata.pp_var(), request_id );
108 }
109 return PP_ERROR_NOINTERFACE;
110 }
111
112
113 int32_t Filesystem_Provider_Dev :: SendReadDirectorySuccessResponse(
114 const VarArray& entries,
115 bool has_more,
116 int32_t request_id ) {
117 if ( has_interface< PPB_FilesystemProvider_Dev_0_1 >() ) {
118 return get_interface< PPB_FilesystemProvider_Dev_0_1 >(
119 )->SendReadDirectorySuccessResponse(
120 pp_resource(),
121 entries.pp_var(),
122 PP_FromBool( has_more ),request_id );
123 }
124 return PP_ERROR_NOINTERFACE;
125 }
126
127 int32_t Filesystem_Provider_Dev::SendReadFileSuccessResponse(
128 uint32_t data_size,
129 const char* data, bool has_more,
130 int32_t request_id ) {
131 if ( has_interface<PPB_FilesystemProvider_Dev_0_1 > () ) {
132 return get_interface < PPB_FilesystemProvider_Dev_0_1 > (
133 )->SendReadFileSuccessResponse(
134 pp_resource(),
135 data_size,
136 data,
137 PP_FromBool(has_more),
138 request_id );
139 }
140 return PP_ERROR_NOINTERFACE;
141 }
142
143 int32_t Filesystem_Provider_Dev::GetNextRequest(
144 const CompletionCallbackWithOutput<PP_FilesystemRequest>& cc) {
145 if( has_interface<PPB_FilesystemProvider_Dev_0_1>() ){
146 return get_interface<PPB_FilesystemProvider_Dev_0_1>()->GetNextRequest(
147 pp_resource(), cc.output(), cc.pp_completion_callback() );
148 }
149 return PP_ERROR_NOINTERFACE ;
150 }
151
152 int32_t Filesystem_Provider_Dev::ReleaseRequestBuffer(int32_t request_id) {
153 if ( has_interface<PPB_FilesystemProvider_Dev_0_1 > () ) {
154 return get_interface < PPB_FilesystemProvider_Dev_0_1 > (
155 )->ReleaseRequestBuffer(
156 pp_resource(),
157 request_id );
158 }
159 return PP_ERROR_NOINTERFACE;
160 }
161
162 } //namespace pp
OLDNEW
« no previous file with comments | « ppapi/cpp/dev/filesystem_provider.h ('k') | ppapi/host/resource_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698