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

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_cpp_generator.py

Issue 1682113003: Mojo C++ bindings: Generate InterfaceHandle<> instead of InterfacePtr<>. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebase ontop of master, address trung's comments Created 4 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
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generates C++ source files from a mojom.Module.""" 5 """Generates C++ source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 if mojom.IsEnumKind(kind): 135 if mojom.IsEnumKind(kind):
136 return GetNameForKind(kind) 136 return GetNameForKind(kind)
137 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): 137 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind):
138 return "%sPtr" % GetNameForKind(kind) 138 return "%sPtr" % GetNameForKind(kind)
139 if mojom.IsArrayKind(kind): 139 if mojom.IsArrayKind(kind):
140 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) 140 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind)
141 if mojom.IsMapKind(kind): 141 if mojom.IsMapKind(kind):
142 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), 142 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind),
143 GetCppArrayArgWrapperType(kind.value_kind)) 143 GetCppArrayArgWrapperType(kind.value_kind))
144 if mojom.IsInterfaceKind(kind): 144 if mojom.IsInterfaceKind(kind):
145 return "%sPtr" % GetNameForKind(kind) 145 return "mojo::InterfaceHandle<%s>" % GetNameForKind(kind)
146 if mojom.IsInterfaceRequestKind(kind): 146 if mojom.IsInterfaceRequestKind(kind):
147 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) 147 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind)
148 if mojom.IsStringKind(kind): 148 if mojom.IsStringKind(kind):
149 return "mojo::String" 149 return "mojo::String"
150 if mojom.IsGenericHandleKind(kind): 150 if mojom.IsGenericHandleKind(kind):
151 return "mojo::ScopedHandle" 151 return "mojo::ScopedHandle"
152 if mojom.IsDataPipeConsumerKind(kind): 152 if mojom.IsDataPipeConsumerKind(kind):
153 return "mojo::ScopedDataPipeConsumerHandle" 153 return "mojo::ScopedDataPipeConsumerHandle"
154 if mojom.IsDataPipeProducerKind(kind): 154 if mojom.IsDataPipeProducerKind(kind):
155 return "mojo::ScopedDataPipeProducerHandle" 155 return "mojo::ScopedDataPipeProducerHandle"
156 if mojom.IsMessagePipeKind(kind): 156 if mojom.IsMessagePipeKind(kind):
157 return "mojo::ScopedMessagePipeHandle" 157 return "mojo::ScopedMessagePipeHandle"
158 if mojom.IsSharedBufferKind(kind): 158 if mojom.IsSharedBufferKind(kind):
159 return "mojo::ScopedSharedBufferHandle" 159 return "mojo::ScopedSharedBufferHandle"
160 return GetCppTypeForKind(kind) 160 return GetCppTypeForKind(kind)
161 161
162 def GetCppWrapperType(kind): 162 def GetCppWrapperType(kind):
163 if mojom.IsEnumKind(kind): 163 if mojom.IsEnumKind(kind):
164 return GetNameForKind(kind) 164 return GetNameForKind(kind)
165 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): 165 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind):
166 return "%sPtr" % GetNameForKind(kind) 166 return "%sPtr" % GetNameForKind(kind)
167 if mojom.IsArrayKind(kind): 167 if mojom.IsArrayKind(kind):
168 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) 168 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind)
169 if mojom.IsMapKind(kind): 169 if mojom.IsMapKind(kind):
170 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), 170 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind),
171 GetCppArrayArgWrapperType(kind.value_kind)) 171 GetCppArrayArgWrapperType(kind.value_kind))
172 if mojom.IsInterfaceKind(kind): 172 if mojom.IsInterfaceKind(kind):
173 return "%sPtr" % GetNameForKind(kind) 173 return "mojo::InterfaceHandle<%s>" % GetNameForKind(kind)
174 if mojom.IsInterfaceRequestKind(kind): 174 if mojom.IsInterfaceRequestKind(kind):
175 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) 175 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind)
176 if mojom.IsStringKind(kind): 176 if mojom.IsStringKind(kind):
177 return "mojo::String" 177 return "mojo::String"
178 if mojom.IsGenericHandleKind(kind): 178 if mojom.IsGenericHandleKind(kind):
179 return "mojo::ScopedHandle" 179 return "mojo::ScopedHandle"
180 if mojom.IsDataPipeConsumerKind(kind): 180 if mojom.IsDataPipeConsumerKind(kind):
181 return "mojo::ScopedDataPipeConsumerHandle" 181 return "mojo::ScopedDataPipeConsumerHandle"
182 if mojom.IsDataPipeProducerKind(kind): 182 if mojom.IsDataPipeProducerKind(kind):
183 return "mojo::ScopedDataPipeProducerHandle" 183 return "mojo::ScopedDataPipeProducerHandle"
184 if mojom.IsMessagePipeKind(kind): 184 if mojom.IsMessagePipeKind(kind):
185 return "mojo::ScopedMessagePipeHandle" 185 return "mojo::ScopedMessagePipeHandle"
186 if mojom.IsSharedBufferKind(kind): 186 if mojom.IsSharedBufferKind(kind):
187 return "mojo::ScopedSharedBufferHandle" 187 return "mojo::ScopedSharedBufferHandle"
188 return GetCppTypeForKind(kind) 188 return GetCppTypeForKind(kind)
189 189
190 def GetCppConstWrapperType(kind): 190 def GetCppConstWrapperType(kind):
191 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind): 191 if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind):
192 return "%sPtr" % GetNameForKind(kind) 192 return "%sPtr" % GetNameForKind(kind)
193 if mojom.IsArrayKind(kind): 193 if mojom.IsArrayKind(kind):
194 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind) 194 return "mojo::Array<%s>" % GetCppArrayArgWrapperType(kind.kind)
195 if mojom.IsMapKind(kind): 195 if mojom.IsMapKind(kind):
196 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind), 196 return "mojo::Map<%s, %s>" % (GetCppArrayArgWrapperType(kind.key_kind),
197 GetCppArrayArgWrapperType(kind.value_kind)) 197 GetCppArrayArgWrapperType(kind.value_kind))
198 if mojom.IsInterfaceKind(kind): 198 if mojom.IsInterfaceKind(kind):
199 return "%sPtr" % GetNameForKind(kind) 199 return "mojo::InterfaceHandle<%s>" % GetNameForKind(kind)
200 if mojom.IsInterfaceRequestKind(kind): 200 if mojom.IsInterfaceRequestKind(kind):
201 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind) 201 return "mojo::InterfaceRequest<%s>" % GetNameForKind(kind.kind)
202 if mojom.IsEnumKind(kind): 202 if mojom.IsEnumKind(kind):
203 return GetNameForKind(kind) 203 return GetNameForKind(kind)
204 if mojom.IsStringKind(kind): 204 if mojom.IsStringKind(kind):
205 return "const mojo::String&" 205 return "const mojo::String&"
206 if mojom.IsGenericHandleKind(kind): 206 if mojom.IsGenericHandleKind(kind):
207 return "mojo::ScopedHandle" 207 return "mojo::ScopedHandle"
208 if mojom.IsDataPipeConsumerKind(kind): 208 if mojom.IsDataPipeConsumerKind(kind):
209 return "mojo::ScopedDataPipeConsumerHandle" 209 return "mojo::ScopedDataPipeConsumerHandle"
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 def GenerateModuleSource(self): 443 def GenerateModuleSource(self):
444 return self.GetJinjaExports() 444 return self.GetJinjaExports()
445 445
446 def GenerateFiles(self, args): 446 def GenerateFiles(self, args):
447 self.Write(self.GenerateModuleHeader(), 447 self.Write(self.GenerateModuleHeader(),
448 self.MatchMojomFilePath("%s.h" % self.module.name)) 448 self.MatchMojomFilePath("%s.h" % self.module.name))
449 self.Write(self.GenerateModuleInternalHeader(), 449 self.Write(self.GenerateModuleInternalHeader(),
450 self.MatchMojomFilePath("%s-internal.h" % self.module.name)) 450 self.MatchMojomFilePath("%s-internal.h" % self.module.name))
451 self.Write(self.GenerateModuleSource(), 451 self.Write(self.GenerateModuleSource(),
452 self.MatchMojomFilePath("%s.cc" % self.module.name)) 452 self.MatchMojomFilePath("%s.cc" % self.module.name))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698