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

Unified Diff: webkit/plugins/ppapi/ppb_file_ref_impl.h

Issue 7082036: Convert more interfaces to the new thunk system. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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
Index: webkit/plugins/ppapi/ppb_file_ref_impl.h
===================================================================
--- webkit/plugins/ppapi/ppb_file_ref_impl.h (revision 87260)
+++ webkit/plugins/ppapi/ppb_file_ref_impl.h (working copy)
@@ -10,6 +10,7 @@
#include "base/file_path.h"
#include "googleurl/src/gurl.h"
#include "ppapi/c/dev/ppb_file_ref_dev.h"
+#include "ppapi/thunk/ppb_file_ref_api.h"
#include "webkit/plugins/ppapi/resource.h"
namespace webkit {
@@ -19,7 +20,8 @@
class PluginInstance;
class PluginModule;
-class PPB_FileRef_Impl : public Resource {
+class PPB_FileRef_Impl : public Resource,
+ public ::ppapi::thunk::PPB_FileRef_API {
public:
PPB_FileRef_Impl();
PPB_FileRef_Impl(PluginInstance* instance,
@@ -29,27 +31,32 @@
const FilePath& external_file_path);
virtual ~PPB_FileRef_Impl();
- // Returns a pointer to the interface implementing PPB_FileRef that is
- // exposed to the plugin.
- static const PPB_FileRef_Dev* GetInterface();
+ static PP_Resource Create(PP_Resource file_system, const char* path);
// Resource overrides.
virtual PPB_FileRef_Impl* AsPPB_FileRef_Impl();
- // PPB_FileRef implementation.
- std::string GetName() const;
- scoped_refptr<PPB_FileRef_Impl> GetParent();
+ // ResourceObjectBase overrides.
+ virtual ::ppapi::thunk::PPB_FileRef_API* AsPPB_FileRef_API() OVERRIDE;
- // Returns the file system to which this PPB_FileRef_Impl belongs.
- scoped_refptr<PPB_FileSystem_Impl> GetFileSystem() const;
+ // PPB_FileRef_API implementation.
+ virtual PP_FileSystemType_Dev GetFileSystemType() const OVERRIDE;
+ virtual PP_Var GetName() const OVERRIDE;
+ virtual PP_Var GetPath() const OVERRIDE;
+ virtual PP_Resource GetParent() OVERRIDE;
+ virtual int32_t MakeDirectory(PP_Bool make_ancestors,
+ PP_CompletionCallback callback) OVERRIDE;
+ virtual int32_t Touch(PP_Time last_access_time,
+ PP_Time last_modified_time,
+ PP_CompletionCallback callback) OVERRIDE;
+ virtual int32_t Delete(PP_CompletionCallback callback) OVERRIDE;
+ virtual int32_t Rename(PP_Resource new_file_ref,
+ PP_CompletionCallback callback) OVERRIDE;
- // Returns the type of the file system to which this PPB_FileRef_Impl belongs.
- PP_FileSystemType_Dev GetFileSystemType() const;
+ PPB_FileSystem_Impl* file_system() const { return file_system_.get(); }
+ const std::string& virtual_path() const { return virtual_path_; }
// Returns the virtual path (i.e., the path that the pepper plugin sees)
- // corresponding to this file.
- std::string GetPath() const;
-
// Returns the system path corresponding to this file.
FilePath GetSystemPath() const;
@@ -57,6 +64,11 @@
GURL GetFileSystemURL() const;
private:
+ // Many mutation functions are allow only to non-external filesystems, This
+ // function returns true if the filesystem is opened and isn't external as an
+ // access check for these functions.
+ bool IsValidNonExternalFileSystem() const;
+
scoped_refptr<PPB_FileSystem_Impl> file_system_;
std::string virtual_path_; // UTF-8 encoded
FilePath system_path_;

Powered by Google App Engine
This is Rietveld 408576698