[go: nahoru, domu]

blob: b02718b6a9f9b606910b50dda244aef8a03e0e33 [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:
34 scoped_refptr<ppapi::Resource> resource_;
35
36 DISALLOW_COPY_AND_ASSIGN(PluginResourceVar);
37};
38
39#endif