[go: nahoru, domu]

blob: 42be66d219e240047c7e62669de970055aebcffa [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
8#include "ppapi/c/pp_resource.h"
9#include "ppapi/proxy/ppapi_proxy_export.h"
10#include "ppapi/shared_impl/resource.h"
11#include "ppapi/shared_impl/resource_var.h"
12#include "ppapi/shared_impl/var.h"
13
14// Represents a resource Var, usable on the plugin side.
15class PPAPI_PROXY_EXPORT PluginResourceVar : public ppapi::ResourceVar {
16 public:
17 // Makes a null resource var.
18 PluginResourceVar();
19
20 // Makes a resource var with an existing resource.
21 // Takes one reference to the given resource.
22 explicit PluginResourceVar(ppapi::Resource* resource);
23
24 // ResourceVar override.
25 virtual PP_Resource GetPPResource() const OVERRIDE;
26 virtual bool IsPending() const OVERRIDE;
27
28 scoped_refptr<ppapi::Resource> resource() const { return resource_; }
29
30 protected:
31 virtual ~PluginResourceVar();
32
33 private:
mgiuca@chromium.org5288f732013-10-16 02:05:3434 // If NULL, this represents the PP_Resource 0.
mgiuca@chromium.orgc82b0142013-09-23 15:09:2135 scoped_refptr<ppapi::Resource> resource_;
36
37 DISALLOW_COPY_AND_ASSIGN(PluginResourceVar);
38};
39
40#endif