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