Index: ppapi/shared_impl/file_ref_create_info.cc |
diff --git a/ppapi/shared_impl/file_ref_create_info.cc b/ppapi/shared_impl/file_ref_create_info.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f12159343f39939b4662c1df22458c39e62471f5 |
--- /dev/null |
+++ b/ppapi/shared_impl/file_ref_create_info.cc |
@@ -0,0 +1,41 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ppapi/shared_impl/file_ref_create_info.h" |
+ |
+#include "base/files/file_path.h" |
+#include "base/logging.h" |
+#include "base/strings/utf_string_conversions.h" |
+#include "ppapi/c/pp_file_info.h" |
+ |
+namespace ppapi { |
+ |
+namespace { |
+ |
+std::string GetNameForExternalFilePath(const base::FilePath& in_path) { |
+ const base::FilePath::StringType& path = in_path.value(); |
+ size_t pos = path.rfind(base::FilePath::kSeparators[0]); |
+ CHECK(pos != base::FilePath::StringType::npos); |
+#if defined(OS_WIN) |
+ return base::WideToUTF8(path.substr(pos + 1)); |
+#elif defined(OS_POSIX) |
+ return path.substr(pos + 1); |
+#else |
+#error "Unsupported platform." |
+#endif |
+} |
+ |
+} // namespace |
+ |
+FileRef_CreateInfo |
+MakeExternalFileRefCreateInfo(const base::FilePath& external_path, |
+ int pending_host_resource_id) { |
+ FileRef_CreateInfo info; |
+ info.file_system_type = PP_FILESYSTEMTYPE_EXTERNAL; |
+ info.display_name = GetNameForExternalFilePath(external_path); |
+ info.pending_host_resource_id = pending_host_resource_id; |
+ return info; |
+} |
+ |
+} // namespace ppapi |