blob: 90b674c453afccf93178bac46f20092185829e1e [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);
[email protected]b20df1c2011-08-03 14:38:2421 virtual ~PPP_Messaging_Proxy();
22
[email protected]b20df1c2011-08-03 14:38:2423 // InterfaceProxy implementation.
mostynb699af3c2014-10-06 18:03:3424 virtual bool OnMessageReceived(const IPC::Message& msg) override;
[email protected]b20df1c2011-08-03 14:38:2425
26 private:
27 // Message handlers.
28 void OnMsgHandleMessage(PP_Instance instance,
29 SerializedVarReceiveInput data);
[email protected]e87640bd2014-06-18 16:44:0030 void OnMsgHandleBlockingMessage(PP_Instance instance,
31 SerializedVarReceiveInput data,
32 IPC::Message* reply);
[email protected]5c966022011-09-13 18:09:3733
34 // When this proxy is in the plugin side, this value caches the interface
35 // pointer so we don't have to retrieve it from the dispatcher each time.
36 // In the host, this value is always NULL.
37 const PPP_Messaging* ppp_messaging_impl_;
38
39 DISALLOW_COPY_AND_ASSIGN(PPP_Messaging_Proxy);
[email protected]b20df1c2011-08-03 14:38:2440};
41
42} // namespace proxy
[email protected]4d2efd22011-08-18 21:58:0243} // namespace ppapi
[email protected]b20df1c2011-08-03 14:38:2444
45#endif // PPAPI_PROXY_PPP_MESSAGING_PROXY_H_