blob: 601b94ddd80381067cda8decd15ab813091a211e [file] [log] [blame]
[email protected]a1686e272012-11-01 23:39:341// 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_PROXY_FLASH_CLIPBOARD_RESOURCE_H_
6#define PPAPI_PROXY_FLASH_CLIPBOARD_RESOURCE_H_
7
avie029c4132015-12-23 06:45:228#include <stdint.h>
9
10#include "base/macros.h"
[email protected]a1686e272012-11-01 23:39:3411#include "ppapi/proxy/connection.h"
12#include "ppapi/proxy/plugin_resource.h"
13#include "ppapi/shared_impl/flash_clipboard_format_registry.h"
14#include "ppapi/thunk/ppb_flash_clipboard_api.h"
15
16namespace ppapi {
17namespace proxy {
18
Nico Weber43ddd7a32017-08-15 19:19:2719class FlashClipboardResource : public PluginResource,
20 public thunk::PPB_Flash_Clipboard_API {
[email protected]a1686e272012-11-01 23:39:3421 public:
22 FlashClipboardResource(Connection connection, PP_Instance instance);
nicke4784432015-04-23 14:01:4823 ~FlashClipboardResource() override;
[email protected]a1686e272012-11-01 23:39:3424
25 // Resource implementation.
nicke4784432015-04-23 14:01:4826 thunk::PPB_Flash_Clipboard_API* AsPPB_Flash_Clipboard_API() override;
[email protected]a1686e272012-11-01 23:39:3427
28 // PPB_Flash_Clipboard_API implementation.
nicke4784432015-04-23 14:01:4829 uint32_t RegisterCustomFormat(PP_Instance instance,
30 const char* format_name) override;
31 PP_Bool IsFormatAvailable(PP_Instance instance,
[email protected]a1686e272012-11-01 23:39:3432 PP_Flash_Clipboard_Type clipboard_type,
nicke4784432015-04-23 14:01:4833 uint32_t format) override;
34 PP_Var ReadData(PP_Instance instance,
35 PP_Flash_Clipboard_Type clipboard_type,
36 uint32_t format) override;
37 int32_t WriteData(PP_Instance instance,
38 PP_Flash_Clipboard_Type clipboard_type,
39 uint32_t data_item_count,
40 const uint32_t formats[],
41 const PP_Var data_items[]) override;
42 PP_Bool GetSequenceNumber(
[email protected]3391ebb2014-01-28 01:45:3343 PP_Instance instance,
44 PP_Flash_Clipboard_Type clipboard_type,
mostynb699af3c2014-10-06 18:03:3445 uint64_t* sequence_number) override;
[email protected]a1686e272012-11-01 23:39:3446
47 private:
48 FlashClipboardFormatRegistry clipboard_formats_;
49
50 DISALLOW_COPY_AND_ASSIGN(FlashClipboardResource);
51};
52
53} // namespace proxy
54} // namespace ppapi
55
56#endif // PPAPI_PROXY_FLASH_CLIPBOARD_RESOURCE_H_