Index: ppapi/proxy/ppb_file_ref_proxy.h |
=================================================================== |
--- ppapi/proxy/ppb_file_ref_proxy.h (revision 0) |
+++ ppapi/proxy/ppb_file_ref_proxy.h (revision 0) |
@@ -0,0 +1,86 @@ |
+// Copyright (c) 2011 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. |
+ |
+#ifndef PPAPI_PROXY_PPB_FILE_REF_PROXY_H_ |
+#define PPAPI_PROXY_PPB_FILE_REF_PROXY_H_ |
+ |
+#include <string> |
+ |
+#include "base/basictypes.h" |
+#include "ppapi/c/pp_module.h" |
+#include "ppapi/c/pp_resource.h" |
+#include "ppapi/c/pp_time.h" |
+#include "ppapi/proxy/interface_proxy.h" |
+ |
+struct PPB_FileRef_Dev; |
+ |
+namespace pp { |
+namespace proxy { |
+ |
+class HostResource; |
+struct PPBFileRef_CreateInfo; |
+ |
+class PPB_FileRef_Proxy : public InterfaceProxy { |
+ public: |
+ PPB_FileRef_Proxy(Dispatcher* dispatcher, const void* target_interface); |
+ virtual ~PPB_FileRef_Proxy(); |
+ |
+ static const Info* GetInfo(); |
+ |
+ const PPB_FileRef_Dev* ppb_file_ref_target() const { |
+ return static_cast<const PPB_FileRef_Dev*>(target_interface()); |
+ } |
+ |
+ // InterfaceProxy implementation. |
+ virtual bool OnMessageReceived(const IPC::Message& msg); |
+ |
+ // Takes a resource in the host and converts it into a serialized file ref |
+ // "create info" for reconstitution in the plugin. This struct contains all |
+ // the necessary information about the file ref. |
+ // |
+ // This function is not static because it needs access to the particular |
+ // dispatcher and host interface. |
+ // |
+ // Various PPAPI functions return file refs from various interfaces, so this |
+ // function is public so anybody can send a file ref. |
+ void SerializeFileRef(PP_Resource file_ref, |
+ PPBFileRef_CreateInfo* result); |
+ |
+ // Creates a plugin resource from the given CreateInfo sent from the host. |
+ // The value will be the result of calling SerializeFileRef on the host. |
+ // This represents passing the resource ownership to the plugin. This |
+ // function also checks the validity of the result and returns 0 on failure. |
+ // |
+ // Various PPAPI functions return file refs from various interfaces, so this |
+ // function is public so anybody can receive a file ref. |
+ static PP_Resource DeserializeFileRef( |
+ const PPBFileRef_CreateInfo& serialized); |
+ |
+ private: |
+ // Message handlers. |
+ void OnMsgCreate(const HostResource& file_system, |
+ const std::string& path, |
+ PPBFileRef_CreateInfo* result); |
+ void OnMsgGetParent(const HostResource& host_resource, |
+ PPBFileRef_CreateInfo* result); |
+ void OnMsgMakeDirectory(const HostResource& host_resource, |
+ PP_Bool make_ancestors, |
+ uint32_t serialized_callback); |
+ void OnMsgTouch(const HostResource& host_resource, |
+ PP_Time last_access, |
+ PP_Time last_modified, |
+ uint32_t serialized_callback); |
+ void OnMsgDelete(const HostResource& host_resource, |
+ uint32_t serialized_callback); |
+ void OnMsgRename(const HostResource& file_ref, |
+ const HostResource& new_file_ref, |
+ uint32_t serialized_callback); |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PPB_FileRef_Proxy); |
+}; |
+ |
+} // namespace proxy |
+} // namespace pp |
+ |
+#endif // PPAPI_PROXY_PPB_FILE_REF_PROXY_H_ |
Property changes on: ppapi/proxy/ppb_file_ref_proxy.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |