1// Copyright (c) 2012 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_PPB_FLASH_MESSAGE_LOOP_PROXY_H_ 6#define PPAPI_PPB_FLASH_MESSAGE_LOOP_PROXY_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "base/memory/scoped_ptr.h" 11#include "base/memory/weak_ptr.h" 12#include "ppapi/c/pp_instance.h" 13#include "ppapi/c/pp_resource.h" 14#include "ppapi/proxy/interface_proxy.h" 15 16namespace IPC { 17class Message; 18} 19 20namespace ppapi { 21 22class HostResource; 23 24namespace proxy { 25 26class PPB_Flash_MessageLoop_Proxy 27 : public InterfaceProxy, 28 public base::SupportsWeakPtr<PPB_Flash_MessageLoop_Proxy> { 29 public: 30 explicit PPB_Flash_MessageLoop_Proxy(Dispatcher* dispatcher); 31 virtual ~PPB_Flash_MessageLoop_Proxy(); 32 33 static PP_Resource CreateProxyResource(PP_Instance instance); 34 35 // InterfaceProxy implementation. 36 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 37 38 static const ApiID kApiID = API_ID_PPB_FLASH_MESSAGELOOP; 39 40 private: 41 void OnMsgCreate(PP_Instance instance, ppapi::HostResource* resource); 42 void OnMsgRun(const ppapi::HostResource& flash_message_loop, 43 IPC::Message* reply); 44 void OnMsgQuit(const ppapi::HostResource& flash_message_loop); 45 46 void WillQuitSoon(scoped_ptr<IPC::Message> reply_message, int32_t result); 47 48 DISALLOW_COPY_AND_ASSIGN(PPB_Flash_MessageLoop_Proxy); 49}; 50 51} // namespace proxy 52} // namespace ppapi 53 54#endif // PPAPI_PPB_FLASH_MESSAGE_LOOP_PROXY_H_ 55