Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: sky/engine/bindings-dart/dart/scripts/templates/interface_h.template

Issue 918273002: Remove bindings-dart (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 // WARNING: Do not edit - generated code.
6
7 #ifndef {{dart_class}}_h
8 #define {{dart_class}}_h
9
10 {% filter conditional(conditional_string) %}
11 {% for filename in header_includes %}
12 #include "{{filename}}"
13 {% endfor %}
14
15 #include <dart_api.h>
16
17 namespace blink {
18
19 struct {{dart_class}} {
20 static const int dartClassId = {{interface_name}}ClassId;
21 typedef {{cpp_class}} NativeType;
22 static const bool isNode = {{is_node|lower}};
23 static const bool isActive = {{is_active_dom_object|lower}};
24 static const bool isEventTarget = {{is_event_target|lower}};
25 static const bool isGarbageCollected = {{is_garbage_collected|lower}};
26
27 static ActiveDOMObject* toActiveDOMObject(void* value)
28 {
29 {% if is_active_dom_object %}
30 return toNative(value);
31 {% else %}
32 return 0;
33 {% endif %}
34 }
35 static EventTarget* toEventTarget(void* value)
36 {
37 {% if is_event_target %}
38 return toNative(value);
39 {% else %}
40 return 0;
41 {% endif %}
42 }
43 static Node* toNode(void* value)
44 {
45 {% if is_node %}
46 return toNative(value);
47 {% else %}
48 return 0;
49 {% endif %}
50 }
51 static {{cpp_class}}* toNative(void* value)
52 {
53 return static_cast<{{cpp_class}}*>(value);
54 }
55
56 // FIXME: This has redundant null checks, and much of this code should
57 // be moved to a common place to reduce code bloat.
58 // Convert to native, Dart_Null is an error
59 static NativeType* toNative(Dart_Handle handle, Dart_Handle& exception)
60 {
61 if (!Dart_IsNull(handle)) {
62 DartDOMData* domData = DartDOMData::current();
63 return DartDOMWrapper::unwrapDartWrapper<{{dart_class}}>(domData, ha ndle, exception);
64 } else {
65 exception = Dart_NewStringFromCString("Null value is not a valid {{d art_class}}");
66 return 0;
67 }
68 }
69
70 // Convert nullable to native, Dart_Null maps to C++ null
71 static NativeType* toNativeWithNullCheck(Dart_Handle handle, Dart_Handle& ex ception)
72 {
73 DartDOMData* domData = DartDOMData::current();
74 return DartDOMWrapper::unwrapDartWrapper<{{dart_class}}>(domData, handle , exception);
75 }
76
77 // Convert to native, Dart_Null is an error
78 static NativeType* toNative(Dart_NativeArguments args, int index, Dart_Handl e& exception)
79 {
80 NativeType* result = DartDOMWrapper::unwrapDartWrapper<{{dart_class}}>(a rgs, index, exception);
81 if (result || exception) {
82 return result;
83 }
84 exception = Dart_NewStringFromCString("Null value is not a valid {{dart_ class}}");
85 return 0;
86 }
87
88 // Convert nullable to native, Dart_Null maps to C++ null
89 static NativeType* toNativeWithNullCheck(Dart_NativeArguments args, int inde x, Dart_Handle& exception)
90 {
91 return DartDOMWrapper::unwrapDartWrapper<{{dart_class}}>(args, index, ex ception);
92 }
93
94 static bool hasInstance(Dart_Handle wrapper)
95 {
96 return DartDOMWrapper::subtypeOf(wrapper, dartClassId);
97 }
98
99 static Dart_Handle toDart(NativeType* value)
100 {
101 if (!value)
102 return Dart_Null();
103 DartDOMData* domData = DartDOMData::current();
104 Dart_WeakPersistentHandle result =
105 DartDOMWrapper::lookupWrapper<{{dart_class}}>(domData, value);
106 if (result)
107 return Dart_HandleFromWeakPersistent(result);
108 return createWrapper(domData, value);
109 }
110 static void returnToDart(Dart_NativeArguments args,
111 NativeType* value,
112 bool autoDartScope = true)
113 {
114 if (value) {
115 DartDOMData* domData = static_cast<DartDOMData*>(
116 Dart_GetNativeIsolateData(args));
117 Dart_WeakPersistentHandle result =
118 DartDOMWrapper::lookupWrapper<{{dart_class}}>(domData, value);
119 if (result)
120 Dart_SetWeakHandleReturnValue(args, result);
121 else {
122 if (autoDartScope) {
123 Dart_SetReturnValue(args, createWrapper(domData, value));
124 } else {
125 DartApiScope apiScope;
126 Dart_SetReturnValue(args, createWrapper(domData, value));
127 }
128 }
129 }
130 }
131 {% if has_custom_to_v8 or has_custom_wrap or special_wrap_for %}
132 static Dart_Handle createWrapper(DartDOMData* domData, NativeType* value);
133 {% else %}
134 static Dart_Handle createWrapper(DartDOMData* domData, NativeType* value)
135 {
136 return DartDOMWrapper::createWrapper<{{dart_class}}>(domData, value, {{d art_class}}::dartClassId);
137 }
138 {% endif %}
139 static Dart_Handle toDart({{pass_cpp_type}} value)
140 {
141 return toDart(value.get());
142 }
143 static Dart_Handle createWrapper({{pass_cpp_type}} value)
144 {
145 return createWrapper(value.get());
146 }
147 static void returnToDart(Dart_NativeArguments args,
148 {{pass_cpp_type}} value,
149 bool autoDartScope = true)
150 {
151 return returnToDart(args, value.get(), autoDartScope);
152 }
153
154 static Dart_NativeFunction resolver(Dart_Handle name,
155 int argumentCount,
156 bool* autoSetupScope);
157
158 static const uint8_t* symbolizer(Dart_NativeFunction nf);
159 };
160
161 namespace {{dart_class}}Internal {
162
163 {% from 'methods_cpp.template' import static_method_name %}
164 {% if has_custom_constructor %}
165 {# FIXME(vsm): Name this properly. #}
166 void constructorCallback(Dart_NativeArguments);
167 {% endif %}
168 {% if has_event_constructor %}
169 void initialize{{interface_name}}ForDart({{interface_name}}Init&, const String &, const HashMap<String, Dart_Handle>&, Dart_Handle&);
170 {% endif %}
171 {% for method in methods if method.is_custom_element_callbacks and not method. suppressed %}
172 void {{method.name}}_{{method.number_of_arguments}}(Dart_NativeArguments);
173 {% endfor %}
174
175 {% for method in methods if method.is_custom or method.custom_dart_new %}
176 void {{static_method_name(method.name)}}(Dart_NativeArguments args);
177 {% if method.overload_index == 1 %}
178 void {{static_method_name(method.name, 0)}}(Dart_NativeArguments args);
179 {% endif %}
180 {% endfor %}
181
182 {% for attribute in attributes %}
183 {% if attribute.has_custom_getter %}
184 void {{attribute.name}}Getter(Dart_NativeArguments);
185 {% endif %}
186 {% if attribute.has_custom_setter %}
187 void {{attribute.name}}Setter(Dart_NativeArguments);
188 {% endif %}
189 {% endfor %}
190
191 {% if dart_class == 'DartCSSStyleDeclaration' %}
192 // TODO(efortuna): Pull in custom functions in a less hacky way!
193 void propertyQuery(Dart_NativeArguments args);
194 {% endif %}
195
196 }
197
198 } // namespace blink
199
200 {% endfilter %}
201
202 #endif // {{dart_class}}_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698