summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl/resource_object_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/shared_impl/resource_object_base.h')
-rw-r--r--ppapi/shared_impl/resource_object_base.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/ppapi/shared_impl/resource_object_base.h b/ppapi/shared_impl/resource_object_base.h
index 1a87360..05ed923 100644
--- a/ppapi/shared_impl/resource_object_base.h
+++ b/ppapi/shared_impl/resource_object_base.h
@@ -8,16 +8,20 @@
namespace ppapi {
namespace thunk {
+class PPB_Audio_API;
+class PPB_AudioConfig_API;
+class PPB_AudioTrusted_API;
class PPB_Font_API;
class PPB_Graphics2D_API;
class PPB_ImageData_API;
}
-namespace shared_impl {
-
class ResourceObjectBase {
public:
+ virtual thunk::PPB_Audio_API* AsAudio_API() { return NULL; }
+ virtual thunk::PPB_AudioConfig_API* AsAudioConfig_API() { return NULL; }
+ virtual thunk::PPB_AudioTrusted_API* AsAudioTrusted_API() { return NULL; }
virtual thunk::PPB_Font_API* AsFont_API() { return NULL; }
virtual thunk::PPB_Graphics2D_API* AsGraphics2D_API() { return NULL; }
virtual thunk::PPB_ImageData_API* AsImageData_API() { return NULL; }
@@ -26,6 +30,18 @@ class ResourceObjectBase {
};
template<>
+inline thunk::PPB_Audio_API* ResourceObjectBase::GetAs() {
+ return AsAudio_API();
+}
+template<>
+inline thunk::PPB_AudioConfig_API* ResourceObjectBase::GetAs() {
+ return AsAudioConfig_API();
+}
+template<>
+inline thunk::PPB_AudioTrusted_API* ResourceObjectBase::GetAs() {
+ return AsAudioTrusted_API();
+}
+template<>
inline thunk::PPB_Font_API* ResourceObjectBase::GetAs() {
return AsFont_API();
}
@@ -38,7 +54,6 @@ inline thunk::PPB_ImageData_API* ResourceObjectBase::GetAs() {
return AsImageData_API();
}
-} // namespace shared_impl
} // namespace ppapi
#endif // PPAPI_SHARED_IMPL_RESOURCE_OBJECT_BASE_H_