[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 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 | |||||
avi | e029c413 | 2015-12-23 06:45:22 | [diff] [blame] | 8 | #include <stdint.h> |
9 | |||||
dcheng | ced9224 | 2016-04-07 00:00:12 | [diff] [blame^] | 10 | #include <memory> |
11 | |||||
[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 12 | #include "base/compiler_specific.h" |
avi | e029c413 | 2015-12-23 06:45:22 | [diff] [blame] | 13 | #include "base/macros.h" |
[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 14 | #include "base/memory/weak_ptr.h" |
15 | #include "ppapi/c/pp_instance.h" | ||||
16 | #include "ppapi/c/pp_resource.h" | ||||
17 | #include "ppapi/proxy/interface_proxy.h" | ||||
18 | |||||
19 | namespace IPC { | ||||
20 | class Message; | ||||
21 | } | ||||
22 | |||||
23 | namespace ppapi { | ||||
24 | |||||
25 | class HostResource; | ||||
26 | |||||
27 | namespace proxy { | ||||
28 | |||||
29 | class PPB_Flash_MessageLoop_Proxy | ||||
30 | : public InterfaceProxy, | ||||
31 | public base::SupportsWeakPtr<PPB_Flash_MessageLoop_Proxy> { | ||||
32 | public: | ||||
33 | explicit PPB_Flash_MessageLoop_Proxy(Dispatcher* dispatcher); | ||||
nick | e478443 | 2015-04-23 14:01:48 | [diff] [blame] | 34 | ~PPB_Flash_MessageLoop_Proxy() override; |
[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 35 | |
36 | static PP_Resource CreateProxyResource(PP_Instance instance); | ||||
37 | |||||
38 | // InterfaceProxy implementation. | ||||
nick | e478443 | 2015-04-23 14:01:48 | [diff] [blame] | 39 | bool OnMessageReceived(const IPC::Message& msg) override; |
[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 40 | |
[email protected] | 724fbd3 | 2012-04-30 16:19:41 | [diff] [blame] | 41 | static const ApiID kApiID = API_ID_PPB_FLASH_MESSAGELOOP; |
42 | |||||
[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 43 | private: |
44 | void OnMsgCreate(PP_Instance instance, ppapi::HostResource* resource); | ||||
45 | void OnMsgRun(const ppapi::HostResource& flash_message_loop, | ||||
46 | IPC::Message* reply); | ||||
47 | void OnMsgQuit(const ppapi::HostResource& flash_message_loop); | ||||
48 | |||||
dcheng | ced9224 | 2016-04-07 00:00:12 | [diff] [blame^] | 49 | void WillQuitSoon(std::unique_ptr<IPC::Message> reply_message, |
50 | int32_t result); | ||||
[email protected] | cd2af39 | 2012-01-31 09:19:17 | [diff] [blame] | 51 | |
52 | DISALLOW_COPY_AND_ASSIGN(PPB_Flash_MessageLoop_Proxy); | ||||
53 | }; | ||||
54 | |||||
55 | } // namespace proxy | ||||
56 | } // namespace ppapi | ||||
57 | |||||
58 | #endif // PPAPI_PPB_FLASH_MESSAGE_LOOP_PROXY_H_ |