blob: b4ef36d22e37654f24182de4646a320be20ebe7d [file] [log] [blame]
[email protected]256513872012-01-05 15:41:521// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]b20df1c2011-08-03 14:38:242// 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_MESSAGING_PROXY_H_
6#define PPAPI_PROXY_PPP_MESSAGING_PROXY_H_
7
[email protected]c47317e2012-06-20 22:35:318#include "base/compiler_specific.h"
[email protected]b20df1c2011-08-03 14:38:249#include "ppapi/c/pp_instance.h"
[email protected]256513872012-01-05 15:41:5210#include "ppapi/c/ppp_messaging.h"
[email protected]b20df1c2011-08-03 14:38:2411#include "ppapi/proxy/interface_proxy.h"
12
[email protected]4d2efd22011-08-18 21:58:0213namespace ppapi {
[email protected]b20df1c2011-08-03 14:38:2414namespace proxy {
15
16class SerializedVarReceiveInput;
17
18class PPP_Messaging_Proxy : public InterfaceProxy {
19 public:
[email protected]5c966022011-09-13 18:09:3720 PPP_Messaging_Proxy(Dispatcher* dispatcher);
Peter Boström3d5b3cb2021-09-23 21:35:4521
22 PPP_Messaging_Proxy(const PPP_Messaging_Proxy&) = delete;
23 PPP_Messaging_Proxy& operator=(const PPP_Messaging_Proxy&) = delete;
24
nicke4784432015-04-23 14:01:4825 ~PPP_Messaging_Proxy() override;
[email protected]b20df1c2011-08-03 14:38:2426
[email protected]b20df1c2011-08-03 14:38:2427 // InterfaceProxy implementation.
nicke4784432015-04-23 14:01:4828 bool OnMessageReceived(const IPC::Message& msg) override;
[email protected]b20df1c2011-08-03 14:38:2429
30 private:
31 // Message handlers.
32 void OnMsgHandleMessage(PP_Instance instance,
33 SerializedVarReceiveInput data);
[email protected]e87640bd2014-06-18 16:44:0034 void OnMsgHandleBlockingMessage(PP_Instance instance,
35 SerializedVarReceiveInput data,
36 IPC::Message* reply);
[email protected]5c966022011-09-13 18:09:3737
38 // When this proxy is in the plugin side, this value caches the interface
39 // pointer so we don't have to retrieve it from the dispatcher each time.
40 // In the host, this value is always NULL.
41 const PPP_Messaging* ppp_messaging_impl_;
[email protected]b20df1c2011-08-03 14:38:2442};
43
44} // namespace proxy
[email protected]4d2efd22011-08-18 21:58:0245} // namespace ppapi
[email protected]b20df1c2011-08-03 14:38:2446
47#endif // PPAPI_PROXY_PPP_MESSAGING_PROXY_H_