Revert of Update WV test license server config to use portable sdk server. (https...
[chromium-blink-merge.git] / ppapi / thunk / ppb_file_io_thunk.cc
blob9e5c6e8fed22d5c08fc3273ee2656c2298bbc9bd
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 // From ppb_file_io.idl modified Thu Oct 31 12:30:06 2013.
7 #include "ppapi/c/pp_completion_callback.h"
8 #include "ppapi/c/pp_errors.h"
9 #include "ppapi/c/ppb_file_io.h"
10 #include "ppapi/shared_impl/tracked_callback.h"
11 #include "ppapi/thunk/enter.h"
12 #include "ppapi/thunk/ppapi_thunk_export.h"
13 #include "ppapi/thunk/ppb_file_io_api.h"
15 namespace ppapi {
16 namespace thunk {
18 namespace {
20 PP_Resource Create(PP_Instance instance) {
21 VLOG(4) << "PPB_FileIO::Create()";
22 EnterResourceCreation enter(instance);
23 if (enter.failed())
24 return 0;
25 return enter.functions()->CreateFileIO(instance);
28 PP_Bool IsFileIO(PP_Resource resource) {
29 VLOG(4) << "PPB_FileIO::IsFileIO()";
30 EnterResource<PPB_FileIO_API> enter(resource, false);
31 return PP_FromBool(enter.succeeded());
34 int32_t Open(PP_Resource file_io,
35 PP_Resource file_ref,
36 int32_t open_flags,
37 struct PP_CompletionCallback callback) {
38 VLOG(4) << "PPB_FileIO::Open()";
39 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
40 if (enter.failed())
41 return enter.retval();
42 return enter.SetResult(enter.object()->Open(file_ref,
43 open_flags,
44 enter.callback()));
47 int32_t Query(PP_Resource file_io,
48 struct PP_FileInfo* info,
49 struct PP_CompletionCallback callback) {
50 VLOG(4) << "PPB_FileIO::Query()";
51 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
52 if (enter.failed())
53 return enter.retval();
54 return enter.SetResult(enter.object()->Query(info, enter.callback()));
57 int32_t Touch(PP_Resource file_io,
58 PP_Time last_access_time,
59 PP_Time last_modified_time,
60 struct PP_CompletionCallback callback) {
61 VLOG(4) << "PPB_FileIO::Touch()";
62 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
63 if (enter.failed())
64 return enter.retval();
65 return enter.SetResult(enter.object()->Touch(last_access_time,
66 last_modified_time,
67 enter.callback()));
70 int32_t Read(PP_Resource file_io,
71 int64_t offset,
72 char* buffer,
73 int32_t bytes_to_read,
74 struct PP_CompletionCallback callback) {
75 VLOG(4) << "PPB_FileIO::Read()";
76 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
77 if (enter.failed())
78 return enter.retval();
79 return enter.SetResult(enter.object()->Read(offset,
80 buffer,
81 bytes_to_read,
82 enter.callback()));
85 int32_t Write(PP_Resource file_io,
86 int64_t offset,
87 const char* buffer,
88 int32_t bytes_to_write,
89 struct PP_CompletionCallback callback) {
90 VLOG(4) << "PPB_FileIO::Write()";
91 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
92 if (enter.failed())
93 return enter.retval();
94 return enter.SetResult(enter.object()->Write(offset,
95 buffer,
96 bytes_to_write,
97 enter.callback()));
100 int32_t SetLength(PP_Resource file_io,
101 int64_t length,
102 struct PP_CompletionCallback callback) {
103 VLOG(4) << "PPB_FileIO::SetLength()";
104 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
105 if (enter.failed())
106 return enter.retval();
107 return enter.SetResult(enter.object()->SetLength(length, enter.callback()));
110 int32_t Flush(PP_Resource file_io, struct PP_CompletionCallback callback) {
111 VLOG(4) << "PPB_FileIO::Flush()";
112 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
113 if (enter.failed())
114 return enter.retval();
115 return enter.SetResult(enter.object()->Flush(enter.callback()));
118 void Close(PP_Resource file_io) {
119 VLOG(4) << "PPB_FileIO::Close()";
120 EnterResource<PPB_FileIO_API> enter(file_io, true);
121 if (enter.failed())
122 return;
123 enter.object()->Close();
126 int32_t ReadToArray(PP_Resource file_io,
127 int64_t offset,
128 int32_t max_read_length,
129 struct PP_ArrayOutput* output,
130 struct PP_CompletionCallback callback) {
131 VLOG(4) << "PPB_FileIO::ReadToArray()";
132 EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
133 if (enter.failed())
134 return enter.retval();
135 return enter.SetResult(enter.object()->ReadToArray(offset,
136 max_read_length,
137 output,
138 enter.callback()));
141 const PPB_FileIO_1_0 g_ppb_fileio_thunk_1_0 = {
142 &Create,
143 &IsFileIO,
144 &Open,
145 &Query,
146 &Touch,
147 &Read,
148 &Write,
149 &SetLength,
150 &Flush,
151 &Close
154 const PPB_FileIO_1_1 g_ppb_fileio_thunk_1_1 = {
155 &Create,
156 &IsFileIO,
157 &Open,
158 &Query,
159 &Touch,
160 &Read,
161 &Write,
162 &SetLength,
163 &Flush,
164 &Close,
165 &ReadToArray
168 } // namespace
170 PPAPI_THUNK_EXPORT const PPB_FileIO_1_0* GetPPB_FileIO_1_0_Thunk() {
171 return &g_ppb_fileio_thunk_1_0;
174 PPAPI_THUNK_EXPORT const PPB_FileIO_1_1* GetPPB_FileIO_1_1_Thunk() {
175 return &g_ppb_fileio_thunk_1_1;
178 } // namespace thunk
179 } // namespace ppapi