Index: mojo/public/cpp/bindings/lib/bindings_internal.h |
diff --git a/mojo/public/cpp/bindings/lib/bindings_internal.h b/mojo/public/cpp/bindings/lib/bindings_internal.h |
index b37d87273f7b7aab715177084a3962731300250c..a16ce0ed888d8fb9060640dbe377223b4999999a 100644 |
--- a/mojo/public/cpp/bindings/lib/bindings_internal.h |
+++ b/mojo/public/cpp/bindings/lib/bindings_internal.h |
@@ -20,6 +20,9 @@ template <typename T> |
class Array; |
template <typename T> |
+class ArrayDataView; |
+ |
+template <typename T> |
class AssociatedInterfacePtrInfo; |
template <typename T> |
@@ -34,14 +37,25 @@ class InterfaceRequest; |
template <typename K, typename V> |
class Map; |
+template <typename K, typename V> |
+class MapDataView; |
+ |
+class NativeStruct; |
+ |
+class NativeStructDataView; |
+ |
class String; |
+class StringDataView; |
+ |
template <typename T> |
class StructPtr; |
template <typename T> |
class InlinedStructPtr; |
+using NativeStructPtr = StructPtr<NativeStruct>; |
+ |
namespace internal { |
// Please note that this is a different value than |mojo::kInvalidHandleValue|, |
@@ -328,6 +342,32 @@ struct EnumHashImpl { |
} |
}; |
+template <typename T> |
+struct DataViewTraits { |
+ using MojomType = T; |
+}; |
+ |
+template <typename T> |
+struct DataViewTraits<ArrayDataView<T>> { |
+ using MojomType = Array<typename DataViewTraits<T>::MojomType>; |
+}; |
+ |
+template <typename K, typename V> |
+struct DataViewTraits<MapDataView<K, V>> { |
+ using MojomType = Map<typename DataViewTraits<K>::MojomType, |
+ typename DataViewTraits<V>::MojomType>; |
+}; |
+ |
+template <> |
+struct DataViewTraits<StringDataView> { |
+ using MojomType = String; |
+}; |
+ |
+template <> |
+struct DataViewTraits<NativeStructDataView> { |
+ using MojomType = NativeStructPtr; |
+}; |
+ |
} // namespace internal |
} // namespace mojo |