blob: bc898f31c320b623ee0ee5e635002ca48889fb1c [file] [log] [blame]
[email protected]b20df1c2011-08-03 14:38:241// 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_MESSAGING_PROXY_H_
6#define PPAPI_PROXY_PPP_MESSAGING_PROXY_H_
7
8#include "ppapi/c/pp_instance.h"
9#include "ppapi/proxy/interface_proxy.h"
10
11struct PPP_Messaging;
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
23 static const Info* GetInfo();
24
[email protected]b20df1c2011-08-03 14:38:2425 // InterfaceProxy implementation.
26 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
27
28 private:
29 // Message handlers.
30 void OnMsgHandleMessage(PP_Instance instance,
31 SerializedVarReceiveInput data);
[email protected]5c966022011-09-13 18:09:3732
33 // When this proxy is in the plugin side, this value caches the interface
34 // pointer so we don't have to retrieve it from the dispatcher each time.
35 // In the host, this value is always NULL.
36 const PPP_Messaging* ppp_messaging_impl_;
37
38 DISALLOW_COPY_AND_ASSIGN(PPP_Messaging_Proxy);
[email protected]b20df1c2011-08-03 14:38:2439};
40
41} // namespace proxy
[email protected]4d2efd22011-08-18 21:58:0242} // namespace ppapi
[email protected]b20df1c2011-08-03 14:38:2443
44#endif // PPAPI_PROXY_PPP_MESSAGING_PROXY_H_