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_THUNK_PPB_FLASH_MESSAGE_LOOP_API_H_
6#define PPAPI_THUNK_PPB_FLASH_MESSAGE_LOOP_API_H_
7
8#include "base/callback_forward.h"
9#include "ppapi/c/private/ppb_flash_message_loop.h"
10
11namespace ppapi {
12namespace thunk {
13
14class PPB_Flash_MessageLoop_API {
15 public:
16  virtual ~PPB_Flash_MessageLoop_API() {}
17
18  virtual int32_t Run() = 0;
19  virtual void Quit() = 0;
20
21  // This is used by the proxy at the host side to call into the implementation.
22  // |callback| is called when the message loop is signaled to quit but before
23  // the method returns.
24  typedef base::Callback<void (int32_t)> RunFromHostProxyCallback;
25  virtual void RunFromHostProxy(
26      const RunFromHostProxyCallback& callback) = 0;
27};
28
29}  // namespace thunk
30}  // namespace ppapi
31
32#endif  // PPAPI_THUNK_PPB_FLASH_MESSAGE_LOOP_API_H_
33