15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/weak_ptr.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/proxy/interface_proxy.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_Var_Deprecated; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace proxy { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVar; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarReceiveInput; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarVectorOutParam; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarVectorReceiveInput; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarOutParam; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarReturnValue; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PPB_Var_Deprecated_Proxy : public InterfaceProxy { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit PPB_Var_Deprecated_Proxy(Dispatcher* dispatcher); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~PPB_Var_Deprecated_Proxy(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) static const PPB_Var_Deprecated* GetProxyInterface(); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // InterfaceProxy implementation. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& msg); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Message handlers. 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgAddRefObject(int64 object_id, int* unused); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgReleaseObject(int64 object_id); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgHasProperty(SerializedVarReceiveInput var, 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput name, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgHasMethodDeprecated(SerializedVarReceiveInput var, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput name, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgGetProperty(SerializedVarReceiveInput var, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput name, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgEnumerateProperties( 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput var, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarVectorOutParam props, 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgSetPropertyDeprecated(SerializedVarReceiveInput var, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput name, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput value, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgDeleteProperty(SerializedVarReceiveInput var, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput name, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgCall(SerializedVarReceiveInput object, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput this_object, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput method_name, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarVectorReceiveInput arg_vector, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgCallDeprecated(SerializedVarReceiveInput object, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput method_name, 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarVectorReceiveInput arg_vector, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgConstruct(SerializedVarReceiveInput var, 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarVectorReceiveInput arg_vector, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam exception, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgIsInstanceOfDeprecated(SerializedVarReceiveInput var, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 ppp_class, 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64* ppp_class_data, 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMsgCreateObjectDeprecated(PP_Instance instance, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 ppp_class, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 ppp_class_data, 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Call in the host for messages that can be reentered. 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetAllowPluginReentrancy(); 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void DoReleaseObject(int64 object_id); 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PPB_Var_Deprecated* ppb_var_impl_; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::WeakPtrFactory<PPB_Var_Deprecated_Proxy> task_factory_; 964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PPB_Var_Deprecated_Proxy); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace proxy 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ppapi 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_ 104