summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/plugin_resource.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy/plugin_resource.h')
-rw-r--r--ppapi/proxy/plugin_resource.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/ppapi/proxy/plugin_resource.h b/ppapi/proxy/plugin_resource.h
index 780a2bd..8eee931 100644
--- a/ppapi/proxy/plugin_resource.h
+++ b/ppapi/proxy/plugin_resource.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -6,6 +6,7 @@
#define PPAPI_PROXY_PLUGIN_RESOURCE_H_
#include "base/basictypes.h"
+#include "ppapi/c/pp_instance.h"
#include "ppapi/proxy/plugin_dispatcher.h"
#include "ppapi/proxy/plugin_resource_tracker.h"
@@ -32,19 +33,20 @@ FOR_ALL_PLUGIN_RESOURCES(DECLARE_RESOURCE_CLASS)
class PluginResource {
public:
- PluginResource();
+ PluginResource(PP_Instance instance);
virtual ~PluginResource();
// Returns NULL if the resource is invalid or is a different type.
template<typename T> static T* GetAs(PP_Resource res) {
PluginResource* resource =
- PluginDispatcher::Get()->plugin_resource_tracker()->GetResourceObject(
- res);
+ PluginResourceTracker::GetInstance()->GetResourceObject(res);
return resource ? resource->Cast<T>() : NULL;
}
template <typename T> T* Cast() { return NULL; }
+ PP_Instance instance() const { return instance_; }
+
private:
// Type-specific getters for individual resource types. These will return
// NULL if the resource does not match the specified type. Used by the Cast()
@@ -54,6 +56,9 @@ class PluginResource {
FOR_ALL_PLUGIN_RESOURCES(DEFINE_TYPE_GETTER)
#undef DEFINE_TYPE_GETTER
+ // Instance this resource is associated with.
+ PP_Instance instance_;
+
DISALLOW_COPY_AND_ASSIGN(PluginResource);
};