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

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: Various cleanups Created 5 years, 6 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
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 CompletionCallbackWithOutput<PP_ProviderError_Dev>& 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.output(), 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 CompletionCallbackWithOutput<PP_ProviderError_Dev>& 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.output(), cc.pp_completion_callback() );
65 }
66 return PP_ERROR_NOINTERFACE ;
67 }
68
69 int32_t pp::Filesystem_Provider_Dev::SendSuccessResponse(
70 const PP_OperationType_Dev operation_type,
71 int32_t request_id) {
72 if ( has_interface<PPB_FilesystemProvider_Dev_0_1>()) {
73 return get_interface<PPB_FilesystemProvider_Dev_0_1>(
74 )->SendSuccessResponse(
75 pp_resource(), operation_type, request_id );
76 }
77 return PP_ERROR_NOINTERFACE;
78 }
79
80 int32_t Filesystem_Provider_Dev::SendErrorResponse(
81 const PP_OperationType_Dev& operation_type,
82 const PP_ProviderError_Dev& error,
83 int32_t request_id) {
84 if ( has_interface< PPB_FilesystemProvider_Dev_0_1 >() ){
85 return get_interface< PPB_FilesystemProvider_Dev_0_1 >(
86 )->SendErrorResponse(
87 pp_resource(), operation_type, error,request_id );
88 }
89 return PP_ERROR_NOINTERFACE;
90 }
91
92 int32_t Filesystem_Provider_Dev :: SendMetadataSuccessResponse(
93 const PP_EntryMetadata_Dev& metadata,
94 int32_t request_id ) {
95 if ( has_interface< PPB_FilesystemProvider_Dev_0_1>() ) {
96 return get_interface< PPB_FilesystemProvider_Dev_0_1 > (
97 )->SendMetadataSuccessResponse(
98 pp_resource(), &metadata, request_id );
99 }
100 return PP_ERROR_NOINTERFACE;
101 }
102
103
104 int32_t Filesystem_Provider_Dev :: SendReadDirectorySuccessResponse(
105 const std::vector<PP_EntryMetadata_Dev>& entries,
106 bool has_more,
107 int32_t request_id ) {
108 if ( has_interface< PPB_FilesystemProvider_Dev_0_1 >() ) {
109 return get_interface< PPB_FilesystemProvider_Dev_0_1 >(
110 )->SendReadDirectorySuccessResponse(
111 pp_resource(),
112 entries.size(),
113 entries.size() ?
114 &entries[0] : NULL,
115 PP_FromBool( has_more ),request_id );
116 }
117 return PP_ERROR_NOINTERFACE;
118 }
119
120 int32_t Filesystem_Provider_Dev::SendReadFileSuccessResponse(
121 uint32_t data_size,
122 const char* data, bool has_more,
123 int32_t request_id ) {
124 if ( has_interface<PPB_FilesystemProvider_Dev_0_1 > () ) {
125 return get_interface < PPB_FilesystemProvider_Dev_0_1 > (
126 )->SendReadFileSuccessResponse(
127 pp_resource(),
128 data_size,
129 data,
130 PP_FromBool(has_more),
131 request_id );
132 }
133 return PP_ERROR_NOINTERFACE;
134 }
135
136 int32_t Filesystem_Provider_Dev::GetNextRequest(
137 const CompletionCallbackWithOutput<PP_FilesystemRequest>& cc) {
138 if( has_interface<PPB_FilesystemProvider_Dev_0_1>() ){
139 return get_interface<PPB_FilesystemProvider_Dev_0_1>()->GetNextRequest(
140 pp_resource(), cc.output(), cc.pp_completion_callback() );
141 }
142 return PP_ERROR_NOINTERFACE ;
143 }
144
145 int32_t Filesystem_Provider_Dev::FreeWriteRequestBuffer(const void* buffer) {
146 if ( has_interface<PPB_FilesystemProvider_Dev_0_1 > () ) {
147 return get_interface < PPB_FilesystemProvider_Dev_0_1 > (
148 )->FreeWriteRequestBuffer(
149 pp_resource(),
150 buffer );
151 }
152 return PP_ERROR_NOINTERFACE;
153 }
154 } //namespace pp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698