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 16 namespace IPC { 17 class Message; 18 } 19 20 namespace ppapi { 21 22 class HostResource; 23 24 namespace proxy { 25 26 class 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