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

Unified Diff: ppapi/cpp/file_ref.cc

Issue 12817009: Add Query() support to FileRef (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merged onto origin/master yet again Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/cpp/file_ref.h ('k') | ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/cpp/file_ref.cc
diff --git a/ppapi/cpp/file_ref.cc b/ppapi/cpp/file_ref.cc
index fbfd49b489b3723a25e76eafca9a8331688cf1ab..377fbbb04caeba6d52706acd681106a96771ee26 100644
--- a/ppapi/cpp/file_ref.cc
+++ b/ppapi/cpp/file_ref.cc
@@ -18,6 +18,10 @@ template <> const char* interface_name<PPB_FileRef_1_0>() {
return PPB_FILEREF_INTERFACE_1_0;
}
+template <> const char* interface_name<PPB_FileRef_1_1>() {
+ return PPB_FILEREF_INTERFACE_1_1;
+}
+
} // namespace
FileRef::FileRef(PP_Resource resource) : Resource(resource) {
@@ -28,10 +32,13 @@ FileRef::FileRef(PassRef, PP_Resource resource) : Resource(PASS_REF, resource) {
FileRef::FileRef(const FileSystem& file_system,
const char* path) {
- if (!has_interface<PPB_FileRef_1_0>())
- return;
- PassRefFromConstructor(get_interface<PPB_FileRef_1_0>()->Create(
- file_system.pp_resource(), path));
+ if (has_interface<PPB_FileRef_1_1>()) {
+ PassRefFromConstructor(get_interface<PPB_FileRef_1_1>()->Create(
+ file_system.pp_resource(), path));
+ } else if (has_interface<PPB_FileRef_1_0>()) {
+ PassRefFromConstructor(get_interface<PPB_FileRef_1_0>()->Create(
+ file_system.pp_resource(), path));
+ }
}
FileRef::FileRef(const FileRef& other)
@@ -39,74 +46,129 @@ FileRef::FileRef(const FileRef& other)
}
PP_FileSystemType FileRef::GetFileSystemType() const {
- if (!has_interface<PPB_FileRef_1_0>())
- return PP_FILESYSTEMTYPE_EXTERNAL;
- return get_interface<PPB_FileRef_1_0>()->GetFileSystemType(pp_resource());
+ if (has_interface<PPB_FileRef_1_1>())
+ return get_interface<PPB_FileRef_1_1>()->GetFileSystemType(pp_resource());
+ if (has_interface<PPB_FileRef_1_0>())
+ return get_interface<PPB_FileRef_1_0>()->GetFileSystemType(pp_resource());
+ return PP_FILESYSTEMTYPE_EXTERNAL;
}
Var FileRef::GetName() const {
- if (!has_interface<PPB_FileRef_1_0>())
- return Var();
- return Var(PASS_REF,
- get_interface<PPB_FileRef_1_0>()->GetName(pp_resource()));
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_FileRef_1_1>()->GetName(pp_resource()));
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_FileRef_1_0>()->GetName(pp_resource()));
+ }
+ return Var();
}
Var FileRef::GetPath() const {
- if (!has_interface<PPB_FileRef_1_0>())
- return Var();
- return Var(PASS_REF,
- get_interface<PPB_FileRef_1_0>()->GetPath(pp_resource()));
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_FileRef_1_1>()->GetPath(pp_resource()));
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_FileRef_1_0>()->GetPath(pp_resource()));
+ }
+ return Var();
}
FileRef FileRef::GetParent() const {
- if (!has_interface<PPB_FileRef_1_0>())
- return FileRef();
- return FileRef(PASS_REF,
- get_interface<PPB_FileRef_1_0>()->GetParent(pp_resource()));
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return FileRef(PASS_REF,
+ get_interface<PPB_FileRef_1_1>()->GetParent(pp_resource()));
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return FileRef(PASS_REF,
+ get_interface<PPB_FileRef_1_0>()->GetParent(pp_resource()));
+ }
+ return FileRef();
}
int32_t FileRef::MakeDirectory(const CompletionCallback& cc) {
- if (!has_interface<PPB_FileRef_1_0>())
- return cc.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
- pp_resource(),
- PP_FALSE, // make_ancestors
- cc.pp_completion_callback());
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
+ pp_resource(),
+ PP_FALSE, // make_ancestors
+ cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
+ pp_resource(),
+ PP_FALSE, // make_ancestors
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
}
int32_t FileRef::MakeDirectoryIncludingAncestors(
const CompletionCallback& cc) {
- if (!has_interface<PPB_FileRef_1_0>())
- return cc.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
- pp_resource(),
- PP_TRUE, // make_ancestors
- cc.pp_completion_callback());
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
+ pp_resource(),
+ PP_TRUE, // make_ancestors
+ cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
+ pp_resource(),
+ PP_TRUE, // make_ancestors
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
}
int32_t FileRef::Touch(PP_Time last_access_time,
PP_Time last_modified_time,
const CompletionCallback& cc) {
- if (!has_interface<PPB_FileRef_1_0>())
- return cc.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_0>()->Touch(
- pp_resource(), last_access_time, last_modified_time,
- cc.pp_completion_callback());
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->Touch(
+ pp_resource(), last_access_time, last_modified_time,
+ cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return get_interface<PPB_FileRef_1_0>()->Touch(
+ pp_resource(), last_access_time, last_modified_time,
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
}
int32_t FileRef::Delete(const CompletionCallback& cc) {
- if (!has_interface<PPB_FileRef_1_0>())
- return cc.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_0>()->Delete(
- pp_resource(), cc.pp_completion_callback());
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->Delete(
+ pp_resource(), cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return get_interface<PPB_FileRef_1_0>()->Delete(
+ pp_resource(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
}
int32_t FileRef::Rename(const FileRef& new_file_ref,
const CompletionCallback& cc) {
- if (!has_interface<PPB_FileRef_1_0>())
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->Rename(
+ pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return get_interface<PPB_FileRef_1_0>()->Rename(
+ pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t FileRef::Query(const CompletionCallbackWithOutput<PP_FileInfo>& cc) {
+ if (!has_interface<PPB_FileRef_1_1>())
return cc.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_0>()->Rename(
- pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
+ return get_interface<PPB_FileRef_1_1>()->Query(
+ pp_resource(), cc.output(), cc.pp_completion_callback());
}
+
} // namespace pp
« no previous file with comments | « ppapi/cpp/file_ref.h ('k') | ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698