• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_PPB_VAR_DEPRECATED_PROXY_H_
6 #define PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_
7 
8 #include <vector>
9 
10 #include "base/memory/weak_ptr.h"
11 #include "ppapi/c/pp_instance.h"
12 #include "ppapi/proxy/interface_proxy.h"
13 
14 struct PPB_Var_Deprecated;
15 
16 namespace ppapi {
17 namespace proxy {
18 
19 class SerializedVar;
20 class SerializedVarReceiveInput;
21 class SerializedVarVectorOutParam;
22 class SerializedVarVectorReceiveInput;
23 class SerializedVarOutParam;
24 class SerializedVarReturnValue;
25 
26 class PPB_Var_Deprecated_Proxy : public InterfaceProxy {
27  public:
28   explicit PPB_Var_Deprecated_Proxy(Dispatcher* dispatcher);
29   virtual ~PPB_Var_Deprecated_Proxy();
30 
31   static const PPB_Var_Deprecated* GetProxyInterface();
32 
33   // InterfaceProxy implementation.
34   virtual bool OnMessageReceived(const IPC::Message& msg);
35 
36  private:
37   // Message handlers.
38   void OnMsgAddRefObject(int64 object_id);
39   void OnMsgReleaseObject(int64 object_id);
40   void OnMsgHasProperty(SerializedVarReceiveInput var,
41                         SerializedVarReceiveInput name,
42                         SerializedVarOutParam exception,
43                         PP_Bool* result);
44   void OnMsgHasMethodDeprecated(SerializedVarReceiveInput var,
45                                 SerializedVarReceiveInput name,
46                                 SerializedVarOutParam exception,
47                                 PP_Bool* result);
48   void OnMsgGetProperty(SerializedVarReceiveInput var,
49                         SerializedVarReceiveInput name,
50                         SerializedVarOutParam exception,
51                         SerializedVarReturnValue result);
52   void OnMsgEnumerateProperties(
53       SerializedVarReceiveInput var,
54       SerializedVarVectorOutParam props,
55       SerializedVarOutParam exception);
56   void OnMsgSetPropertyDeprecated(SerializedVarReceiveInput var,
57                                   SerializedVarReceiveInput name,
58                                   SerializedVarReceiveInput value,
59                                   SerializedVarOutParam exception);
60   void OnMsgDeleteProperty(SerializedVarReceiveInput var,
61                            SerializedVarReceiveInput name,
62                            SerializedVarOutParam exception,
63                            PP_Bool* result);
64   void OnMsgCall(SerializedVarReceiveInput object,
65                  SerializedVarReceiveInput this_object,
66                  SerializedVarReceiveInput method_name,
67                  SerializedVarVectorReceiveInput arg_vector,
68                  SerializedVarOutParam exception,
69                  SerializedVarReturnValue result);
70   void OnMsgCallDeprecated(SerializedVarReceiveInput object,
71                            SerializedVarReceiveInput method_name,
72                            SerializedVarVectorReceiveInput arg_vector,
73                            SerializedVarOutParam exception,
74                            SerializedVarReturnValue result);
75   void OnMsgConstruct(SerializedVarReceiveInput var,
76                       SerializedVarVectorReceiveInput arg_vector,
77                       SerializedVarOutParam exception,
78                       SerializedVarReturnValue result);
79   void OnMsgIsInstanceOfDeprecated(SerializedVarReceiveInput var,
80                                    int64 ppp_class,
81                                    int64* ppp_class_data,
82                                    PP_Bool* result);
83   void OnMsgCreateObjectDeprecated(PP_Instance instance,
84                                    int64 ppp_class,
85                                    int64 ppp_class_data,
86                                    SerializedVarReturnValue result);
87 
88   // Call in the host for messages that can be reentered.
89   void SetAllowPluginReentrancy();
90 
91   void DoReleaseObject(int64 object_id);
92 
93   const PPB_Var_Deprecated* ppb_var_impl_;
94 
95   base::WeakPtrFactory<PPB_Var_Deprecated_Proxy> task_factory_;
96 
97   DISALLOW_COPY_AND_ASSIGN(PPB_Var_Deprecated_Proxy);
98 };
99 
100 }  // namespace proxy
101 }  // namespace ppapi
102 
103 #endif  // PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_
104