summaryrefslogtreecommitdiffstats
path: root/ppapi/thunk
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/thunk')
-rw-r--r--ppapi/thunk/interfaces_ppb_public_dev.h2
-rw-r--r--ppapi/thunk/ppb_resource_array_api.h25
-rw-r--r--ppapi/thunk/ppb_resource_array_thunk.cc53
-rw-r--r--ppapi/thunk/resource_creation_api.h5
4 files changed, 84 insertions, 1 deletions
diff --git a/ppapi/thunk/interfaces_ppb_public_dev.h b/ppapi/thunk/interfaces_ppb_public_dev.h
index 7161449..f72fa7c 100644
--- a/ppapi/thunk/interfaces_ppb_public_dev.h
+++ b/ppapi/thunk/interfaces_ppb_public_dev.h
@@ -48,6 +48,8 @@ UNPROXIED_IFACE(PPB_Instance, PPB_ZOOM_DEV_INTERFACE_0_2, PPB_Zoom_Dev_0_2)
UNPROXIED_IFACE(PPB_LayerCompositor, PPB_LAYER_COMPOSITOR_DEV_INTERFACE_0_2,
PPB_LayerCompositor_Dev_0_2)
PROXIED_IFACE(NoAPIName, PPB_MEMORY_DEV_INTERFACE_0_1, PPB_Memory_Dev_0_1)
+PROXIED_IFACE(NoAPIName, PPB_RESOURCEARRAY_DEV_INTERFACE_0_1,
+ PPB_ResourceArray_Dev_0_1)
UNPROXIED_IFACE(PPB_Scrollbar, PPB_SCROLLBAR_DEV_INTERFACE_0_5,
PPB_Scrollbar_Dev_0_5)
PROXIED_IFACE(PPB_TextInput, PPB_TEXTINPUT_DEV_INTERFACE_0_1,
diff --git a/ppapi/thunk/ppb_resource_array_api.h b/ppapi/thunk/ppb_resource_array_api.h
new file mode 100644
index 0000000..ec37f9e
--- /dev/null
+++ b/ppapi/thunk/ppb_resource_array_api.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2012 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.
+
+#ifndef PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_
+#define PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_
+
+#include "ppapi/c/dev/ppb_resource_array_dev.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+
+namespace ppapi {
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_ResourceArray_API {
+ public:
+ virtual ~PPB_ResourceArray_API() {}
+
+ virtual uint32_t GetSize() = 0;
+ virtual PP_Resource GetAt(uint32_t index) = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_
diff --git a/ppapi/thunk/ppb_resource_array_thunk.cc b/ppapi/thunk/ppb_resource_array_thunk.cc
new file mode 100644
index 0000000..1526028
--- /dev/null
+++ b/ppapi/thunk/ppb_resource_array_thunk.cc
@@ -0,0 +1,53 @@
+// Copyright (c) 2012 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.
+
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_resource_array_api.h"
+#include "ppapi/thunk/resource_creation_api.h"
+#include "ppapi/thunk/thunk.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Resource Create(PP_Instance instance,
+ const PP_Resource elements[],
+ uint32_t size) {
+ EnterFunction<ResourceCreationAPI> enter(instance, true);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->CreateResourceArray(instance, elements, size);
+}
+
+PP_Bool IsResourceArray(PP_Resource resource) {
+ EnterResource<PPB_ResourceArray_API> enter(resource, false);
+ return enter.succeeded() ? PP_TRUE : PP_FALSE;
+}
+
+uint32_t GetSize(PP_Resource resource_array) {
+ EnterResource<PPB_ResourceArray_API> enter(resource_array, true);
+ return enter.succeeded() ? enter.object()->GetSize() : 0;
+}
+
+PP_Resource GetAt(PP_Resource resource_array, uint32_t index) {
+ EnterResource<PPB_ResourceArray_API> enter(resource_array, true);
+ return enter.succeeded() ? enter.object()->GetAt(index) : 0;
+}
+
+const PPB_ResourceArray_Dev g_ppb_resource_array_thunk = {
+ &Create,
+ &IsResourceArray,
+ &GetSize,
+ &GetAt
+};
+
+} // namespace
+
+const PPB_ResourceArray_Dev_0_1* GetPPB_ResourceArray_Dev_0_1_Thunk() {
+ return &g_ppb_resource_array_thunk;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/ppapi/thunk/resource_creation_api.h b/ppapi/thunk/resource_creation_api.h
index ecab7cd..90442ed 100644
--- a/ppapi/thunk/resource_creation_api.h
+++ b/ppapi/thunk/resource_creation_api.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 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.
@@ -103,6 +103,9 @@ class ResourceCreationAPI {
const PP_Point* mouse_position,
int32_t click_count,
const PP_Point* mouse_movement) = 0;
+ virtual PP_Resource CreateResourceArray(PP_Instance instance,
+ const PP_Resource elements[],
+ uint32_t size) = 0;
virtual PP_Resource CreateScrollbar(PP_Instance instance,
PP_Bool vertical) = 0;
virtual PP_Resource CreateTCPSocketPrivate(PP_Instance instace) = 0;