| Index: mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| diff --git a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| index 79b3d3b00ffb195feb4e0ec54709dbbb619970a1..f4daef8f2321a8831ee2a4260efde15fa755067d 100644
|
| --- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| +++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
|
| @@ -242,6 +242,20 @@ def GetCppWrapperParamType(kind):
|
| return (cpp_wrapper_type if ShouldPassParamByValue(kind)
|
| else "const %s&" % cpp_wrapper_type)
|
|
|
| +def GetCppDataViewType(kind):
|
| + if mojom.IsEnumKind(kind):
|
| + return GetNameForKind(kind)
|
| + if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind):
|
| + return "%sDataView" % GetNameForKind(kind)
|
| + if mojom.IsArrayKind(kind):
|
| + return "mojo::ArrayDataView<%s>" % GetCppDataViewType(kind.kind)
|
| + if mojom.IsMapKind(kind):
|
| + return ("mojo::MapDataView<%s, %s>" % (GetCppDataViewType(kind.key_kind),
|
| + GetCppDataViewType(kind.value_kind)))
|
| + if mojom.IsStringKind(kind):
|
| + return "mojo::StringDataView"
|
| + return GetCppWrapperType(kind)
|
| +
|
| def GetCppFieldType(kind):
|
| if mojom.IsStructKind(kind):
|
| return ("mojo::internal::Pointer<%s>" %
|
| @@ -412,6 +426,7 @@ class Generator(generator.Generator):
|
| cpp_filters = {
|
| "constant_value": ConstantValue,
|
| "cpp_wrapper_param_type": GetCppWrapperParamType,
|
| + "cpp_data_view_type": GetCppDataViewType,
|
| "cpp_field_type": GetCppFieldType,
|
| "cpp_union_field_type": GetCppUnionFieldType,
|
| "cpp_pod_type": GetCppPodType,
|
|
|