1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef PPAPI_PROXY_PPP_INSTANCE_PRIVATE_PROXY_H_ 6 #define PPAPI_PROXY_PPP_INSTANCE_PRIVATE_PROXY_H_ 7 8 #include "ppapi/c/pp_instance.h" 9 #include "ppapi/c/pp_resource.h" 10 #include "ppapi/c/pp_var.h" 11 #include "ppapi/c/private/ppp_instance_private.h" 12 #include "ppapi/proxy/interface_proxy.h" 13 #include "ppapi/shared_impl/host_resource.h" 14 15 namespace ppapi { 16 namespace proxy { 17 18 class SerializedVarReturnValue; 19 20 class PPP_Instance_Private_Proxy : public InterfaceProxy { 21 public: 22 PPP_Instance_Private_Proxy(Dispatcher* dispatcher); 23 virtual ~PPP_Instance_Private_Proxy(); 24 25 static const PPP_Instance_Private* GetProxyInterface(); 26 27 private: 28 // InterfaceProxy implementation. 29 virtual bool OnMessageReceived(const IPC::Message& msg); 30 31 // Message handlers. 32 void OnMsgGetInstanceObject(PP_Instance instance, 33 SerializedVarReturnValue result); 34 35 // When this proxy is in the plugin side, this value caches the interface 36 // pointer so we don't have to retrieve it from the dispatcher each time. 37 // In the host, this value is always NULL. 38 const PPP_Instance_Private* ppp_instance_private_impl_; 39 40 DISALLOW_COPY_AND_ASSIGN(PPP_Instance_Private_Proxy); 41 }; 42 43 } // namespace proxy 44 } // namespace ppapi 45 46 #endif // PPAPI_PROXY_PPP_INSTANCE_PRIVATE_PROXY_H_ 47