7 #include "ppapi/c/pp_bool.h"
8 #include "ppapi/c/pp_errors.h"
18 template <>
const char* interface_name<PPB_FileRef_1_0>() {
19 return PPB_FILEREF_INTERFACE_1_0;
22 template <>
const char* interface_name<PPB_FileRef_1_1>() {
23 return PPB_FILEREF_INTERFACE_1_1;
26 template <>
const char* interface_name<PPB_FileRef_1_2>() {
27 return PPB_FILEREF_INTERFACE_1_2;
40 if (has_interface<PPB_FileRef_1_2>()) {
43 }
else if (has_interface<PPB_FileRef_1_1>()) {
46 }
else if (has_interface<PPB_FileRef_1_0>()) {
57 if (has_interface<PPB_FileRef_1_2>())
59 if (has_interface<PPB_FileRef_1_1>())
60 return get_interface<PPB_FileRef_1_1>()->GetFileSystemType(
pp_resource());
61 if (has_interface<PPB_FileRef_1_0>())
63 return PP_FILESYSTEMTYPE_EXTERNAL;
67 if (has_interface<PPB_FileRef_1_2>()) {
71 if (has_interface<PPB_FileRef_1_1>()) {
75 if (has_interface<PPB_FileRef_1_0>()) {
83 if (has_interface<PPB_FileRef_1_2>()) {
87 if (has_interface<PPB_FileRef_1_1>()) {
91 if (has_interface<PPB_FileRef_1_0>()) {
99 if (has_interface<PPB_FileRef_1_2>()) {
103 if (has_interface<PPB_FileRef_1_1>()) {
107 if (has_interface<PPB_FileRef_1_0>()) {
116 if (has_interface<PPB_FileRef_1_2>()) {
119 make_directory_flags,
122 if (has_interface<PPB_FileRef_1_1>()) {
123 if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
124 return cc.
MayForce(PP_ERROR_NOTSUPPORTED);
127 PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
130 if (has_interface<PPB_FileRef_1_0>()) {
131 if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
132 return cc.
MayForce(PP_ERROR_NOTSUPPORTED);
135 PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
138 return cc.
MayForce(PP_ERROR_NOINTERFACE);
142 PP_Time last_modified_time,
144 if (has_interface<PPB_FileRef_1_2>()) {
145 return get_interface<PPB_FileRef_1_2>()->
Touch(
146 pp_resource(), last_access_time, last_modified_time,
149 if (has_interface<PPB_FileRef_1_1>()) {
150 return get_interface<PPB_FileRef_1_1>()->
Touch(
151 pp_resource(), last_access_time, last_modified_time,
154 if (has_interface<PPB_FileRef_1_0>()) {
155 return get_interface<PPB_FileRef_1_0>()->
Touch(
156 pp_resource(), last_access_time, last_modified_time,
159 return cc.
MayForce(PP_ERROR_NOINTERFACE);
163 if (has_interface<PPB_FileRef_1_2>()) {
164 return get_interface<PPB_FileRef_1_2>()->
Delete(
167 if (has_interface<PPB_FileRef_1_1>()) {
168 return get_interface<PPB_FileRef_1_1>()->
Delete(
171 if (has_interface<PPB_FileRef_1_0>()) {
172 return get_interface<PPB_FileRef_1_0>()->
Delete(
175 return cc.
MayForce(PP_ERROR_NOINTERFACE);
180 if (has_interface<PPB_FileRef_1_2>()) {
181 return get_interface<PPB_FileRef_1_2>()->
Rename(
184 if (has_interface<PPB_FileRef_1_1>()) {
185 return get_interface<PPB_FileRef_1_1>()->
Rename(
188 if (has_interface<PPB_FileRef_1_0>()) {
189 return get_interface<PPB_FileRef_1_0>()->
Rename(
192 return cc.
MayForce(PP_ERROR_NOINTERFACE);
196 if (has_interface<PPB_FileRef_1_2>()) {
197 return get_interface<PPB_FileRef_1_2>()->
Query(
200 if (has_interface<PPB_FileRef_1_1>()) {
201 return get_interface<PPB_FileRef_1_1>()->
Query(
204 return cc.
MayForce(PP_ERROR_NOINTERFACE);
210 if (has_interface<PPB_FileRef_1_2>()) {
212 pp_resource(), callback.output(), callback.pp_completion_callback());
214 if (has_interface<PPB_FileRef_1_1>()) {
216 pp_resource(), callback.output(), callback.pp_completion_callback());
218 return callback.MayForce(PP_ERROR_NOINTERFACE);
PP_FileSystemType GetFileSystemType() const
int32_t Delete(const CompletionCallback &cc)
FileRef GetParent() const
void PassRefFromConstructor(PP_Resource resource)
int32_t Touch(PP_Time last_access_time, PP_Time last_modified_time, const CompletionCallback &cc)
APIArgType output() const
int32_t MayForce(int32_t result) const
const PP_CompletionCallback & pp_completion_callback() const
int32_t MakeDirectory(int32_t make_directory_flags, const CompletionCallback &cc)
int32_t ReadDirectoryEntries(const CompletionCallbackWithOutput< std::vector< DirectoryEntry > > &callback)
int32_t Rename(const FileRef &new_file_ref, const CompletionCallback &cc)
PP_Resource pp_resource() const
int32_t Query(const CompletionCallbackWithOutput< PP_FileInfo > &callback)
A generic type used for passing data types between the module and the page.
A reference counted module resource.