[go: nahoru, domu]

blob: 8df91a6c47abeaf23587ea376cb0f2669cdfbddc [file] [log] [blame]
mgiuca@chromium.orgc82b0142013-09-23 15:09:211// Copyright 2013 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_PLUGIN_RESOURCE_VAR_H_
6#define PPAPI_PROXY_PLUGIN_RESOURCE_VAR_H_
7
avie029c4132015-12-23 06:45:228#include "base/macros.h"
mgiuca@chromium.orgc82b0142013-09-23 15:09:219#include "ppapi/c/pp_resource.h"
10#include "ppapi/proxy/ppapi_proxy_export.h"
11#include "ppapi/shared_impl/resource.h"
12#include "ppapi/shared_impl/resource_var.h"
13#include "ppapi/shared_impl/var.h"
14
15// Represents a resource Var, usable on the plugin side.
16class PPAPI_PROXY_EXPORT PluginResourceVar : public ppapi::ResourceVar {
17 public:
18 // Makes a null resource var.
19 PluginResourceVar();
20
21 // Makes a resource var with an existing resource.
22 // Takes one reference to the given resource.
23 explicit PluginResourceVar(ppapi::Resource* resource);
24
Peter Boström896f1372021-11-05 01:12:3025 PluginResourceVar(const PluginResourceVar&) = delete;
26 PluginResourceVar& operator=(const PluginResourceVar&) = delete;
27
mgiuca@chromium.orgc82b0142013-09-23 15:09:2128 // ResourceVar override.
nicke4784432015-04-23 14:01:4829 PP_Resource GetPPResource() const override;
30 bool IsPending() const override;
mgiuca@chromium.orgc82b0142013-09-23 15:09:2131
32 scoped_refptr<ppapi::Resource> resource() const { return resource_; }
33
34 protected:
nicke4784432015-04-23 14:01:4835 ~PluginResourceVar() override;
mgiuca@chromium.orgc82b0142013-09-23 15:09:2136
37 private:
mgiuca@chromium.org5288f732013-10-16 02:05:3438 // If NULL, this represents the PP_Resource 0.
mgiuca@chromium.orgc82b0142013-09-23 15:09:2139 scoped_refptr<ppapi::Resource> resource_;
mgiuca@chromium.orgc82b0142013-09-23 15:09:2140};
41
Sumaid Syed89da1622021-07-29 06:41:2242#endif // PPAPI_PROXY_PLUGIN_RESOURCE_VAR_H_