123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file.
423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#ifndef PPAPI_PROXY_PPP_FIND_PROXY_H_
623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#define PPAPI_PROXY_PPP_FIND_PROXY_H_
723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include <string>
923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "ppapi/c/private/ppp_find_private.h"
1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ppapi/proxy/interface_proxy.h"
1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace ppapi {
1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace proxy {
1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)class PPP_Find_Proxy : public InterfaceProxy {
1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) public:
1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  explicit PPP_Find_Proxy(Dispatcher* dispatcher);
2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  virtual ~PPP_Find_Proxy();
2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  static const PPP_Find_Private* GetProxyInterface();
2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  // InterfaceProxy implementation.
2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  virtual bool OnMessageReceived(const IPC::Message& msg);
2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) private:
2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  // Message handlers.
2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  void OnPluginMsgStartFind(PP_Instance instance,
3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)                            const std::string& text);
3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  void OnPluginMsgSelectFindResult(PP_Instance instance,
3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)                                   PP_Bool forward);
3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  void OnPluginMsgStopFind(PP_Instance instance);
3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  // When this proxy is in the plugin side, this value caches the interface
3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  // pointer so we don't have to retrieve it from the dispatcher each time.
3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  // In the host, this value is always NULL.
38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  const PPP_Find_Private* ppp_find_;
3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(PPP_Find_Proxy);
4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)};
4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}  // namespace proxy
4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}  // namespace ppapi
4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif  // PPAPI_PROXY_PPP_FIND_PROXY_H_
47