Mercurial > pidgin
comparison src/dbus-analyze-functions.py @ 13591:dcfda39ad547
[gaim-migrate @ 15977]
I know this just generates some c code that no one is actually supposed to
look at, but I did one time and the lack of indentation hurt me. This should
fix it and not break anything.
committer: Tailor Script <tailor@pidgin.im>
author | Etan Reisner <pidgin@unreliablesource.net> |
---|---|
date | Fri, 07 Apr 2006 01:05:48 +0000 |
parents | 2078f65a8e98 |
children | 9726dbf3d844 |
comparison
equal
deleted
inserted
replaced
13590:7b20cedc1259 | 13591:dcfda39ad547 |
---|---|
180 print decl | 180 print decl |
181 | 181 |
182 print 'dbus_g_proxy_call(gaim_proxy, "%s", NULL,' % ctopascal(self.function.name) | 182 print 'dbus_g_proxy_call(gaim_proxy, "%s", NULL,' % ctopascal(self.function.name) |
183 | 183 |
184 for type_name in self.inputparams: | 184 for type_name in self.inputparams: |
185 print "%s, %s, " % type_name, | 185 print "\t%s, %s, " % type_name, |
186 print "G_TYPE_INVALID," | 186 print "G_TYPE_INVALID," |
187 | 187 |
188 for type_name in self.outputparams: | 188 for type_name in self.outputparams: |
189 print "%s, &%s, " % type_name, | 189 print "\t%s, &%s, " % type_name, |
190 print "G_TYPE_INVALID);" | 190 print "G_TYPE_INVALID);" |
191 | 191 |
192 for code in self.returncode: | 192 for code in self.returncode: |
193 print code | 193 print code |
194 | 194 |
274 def flush(self): | 274 def flush(self): |
275 print "static DBusMessage*" | 275 print "static DBusMessage*" |
276 print "%s_DBUS(DBusMessage *message_DBUS, DBusError *error_DBUS) {" % \ | 276 print "%s_DBUS(DBusMessage *message_DBUS, DBusError *error_DBUS) {" % \ |
277 self.function.name | 277 self.function.name |
278 | 278 |
279 print "DBusMessage *reply_DBUS;" | 279 print "\tDBusMessage *reply_DBUS;" |
280 | 280 |
281 for decl in self.cdecls: | 281 for decl in self.cdecls: |
282 print decl | 282 print decl |
283 | 283 |
284 print "%s(message_DBUS, error_DBUS, " % self.argfunc, | 284 print "\t%s(message_DBUS, error_DBUS, " % self.argfunc, |
285 for param in self.cparams: | 285 for param in self.cparams: |
286 print "DBUS_TYPE_%s, &%s," % param, | 286 print "DBUS_TYPE_%s, &%s," % param, |
287 print "DBUS_TYPE_INVALID);" | 287 print "DBUS_TYPE_INVALID);" |
288 | 288 |
289 print "CHECK_ERROR(error_DBUS);" | 289 print "\tCHECK_ERROR(error_DBUS);" |
290 | 290 |
291 for code in self.ccode: | 291 for code in self.ccode: |
292 print code | 292 print code |
293 | 293 |
294 print "reply_DBUS = dbus_message_new_method_return (message_DBUS);" | 294 print "\treply_DBUS = dbus_message_new_method_return (message_DBUS);" |
295 | 295 |
296 print "dbus_message_append_args(reply_DBUS, ", | 296 print "\tdbus_message_append_args(reply_DBUS, ", |
297 for param in self.cparamsout: | 297 for param in self.cparamsout: |
298 if type(param) is str: | 298 if type(param) is str: |
299 print "%s, " % param | 299 print "%s, " % param |
300 else: | 300 else: |
301 print "DBUS_TYPE_%s, &%s, " % param, | 301 print "DBUS_TYPE_%s, &%s, " % param, |
302 print "DBUS_TYPE_INVALID);" | 302 print "DBUS_TYPE_INVALID);" |
303 | 303 |
304 for code in self.ccodeout: | 304 for code in self.ccodeout: |
305 print code | 305 print code |
306 | 306 |
307 print "return reply_DBUS;\n}\n" | 307 print "\treturn reply_DBUS;\n}\n" |
308 | 308 |
309 | 309 |
310 def addstring(self, *items): | 310 def addstring(self, *items): |
311 for item in items: | 311 for item in items: |
312 self.dparams += item + r"\0" | 312 self.dparams += item + r"\0" |
319 | 319 |
320 | 320 |
321 # input parameters | 321 # input parameters |
322 | 322 |
323 def inputsimple(self, type, name): | 323 def inputsimple(self, type, name): |
324 self.cdecls.append("dbus_int32_t %s;" % name) | 324 self.cdecls.append("\tdbus_int32_t %s;" % name) |
325 self.cparams.append(("INT32", name)) | 325 self.cparams.append(("INT32", name)) |
326 self.addintype("i", name) | 326 self.addintype("i", name) |
327 | 327 |
328 def inputvalist(self, type, name): | 328 def inputvalist(self, type, name): |
329 self.cdecls.append("void * %s;" % name); | 329 self.cdecls.append("\tvoid * %s;" % name); |
330 self.ccode.append("%s = NULL;" % name); | 330 self.ccode.append("\t%s = NULL;" % name); |
331 | 331 |
332 def inputstring(self, type, name): | 332 def inputstring(self, type, name): |
333 self.cdecls.append("const char *%s;" % name) | 333 self.cdecls.append("\tconst char *%s;" % name) |
334 self.cparams.append(("STRING", name)) | 334 self.cparams.append(("STRING", name)) |
335 self.ccode .append("NULLIFY(%s);" % name) | 335 self.ccode .append("\tNULLIFY(%s);" % name) |
336 self.addintype("s", name) | 336 self.addintype("s", name) |
337 | 337 |
338 def inputhash(self, type, name): | 338 def inputhash(self, type, name): |
339 self.argfunc = "gaim_dbus_message_get_args" | 339 self.argfunc = "gaim_dbus_message_get_args" |
340 self.cdecls.append("DBusMessageIter %s_ITER;" % name) | 340 self.cdecls.append("\tDBusMessageIter %s_ITER;" % name) |
341 self.cdecls.append("GHashTable *%s;" % name) | 341 self.cdecls.append("\tGHashTable *%s;" % name) |
342 self.cparams.append(("ARRAY", "%s_ITER" % name)) | 342 self.cparams.append(("ARRAY", "%s_ITER" % name)) |
343 self.ccode.append("%s = gaim_dbus_iter_hash_table(&%s_ITER, error_DBUS);" \ | 343 self.ccode.append("\t%s = gaim_dbus_iter_hash_table(&%s_ITER, error_DBUS);" \ |
344 % (name, name)) | 344 % (name, name)) |
345 self.ccode.append("CHECK_ERROR(error_DBUS);") | 345 self.ccode.append("\tCHECK_ERROR(error_DBUS);") |
346 self.ccodeout.append("g_hash_table_destroy(%s);" % name) | 346 self.ccodeout.append("\tg_hash_table_destroy(%s);" % name) |
347 self.addintype("a{ss}", name) | 347 self.addintype("a{ss}", name) |
348 | 348 |
349 def inputgaimstructure(self, type, name): | 349 def inputgaimstructure(self, type, name): |
350 self.cdecls.append("dbus_int32_t %s_ID;" % name) | 350 self.cdecls.append("\tdbus_int32_t %s_ID;" % name) |
351 self.cdecls.append("%s *%s;" % (type[0], name)) | 351 self.cdecls.append("\t%s *%s;" % (type[0], name)) |
352 self.cparams.append(("INT32", name + "_ID")) | 352 self.cparams.append(("INT32", name + "_ID")) |
353 self.ccode.append("GAIM_DBUS_ID_TO_POINTER(%s, %s_ID, %s, error_DBUS);" % \ | 353 self.ccode.append("\tGAIM_DBUS_ID_TO_POINTER(%s, %s_ID, %s, error_DBUS);" % \ |
354 (name, name, type[0])) | 354 (name, name, type[0])) |
355 self.addintype("i", name) | 355 self.addintype("i", name) |
356 | 356 |
357 def inputpointer(self, type, name): | 357 def inputpointer(self, type, name): |
358 self.cdecls.append("dbus_int32_t %s_NULL;" % name) | 358 self.cdecls.append("\tdbus_int32_t %s_NULL;" % name) |
359 self.cdecls .append("%s *%s;" % (type[0], name)) | 359 self.cdecls .append("\t%s *%s;" % (type[0], name)) |
360 self.cparams.append(("INT32", name + "_NULL")) | 360 self.cparams.append(("INT32", name + "_NULL")) |
361 self.ccode .append("%s = NULL;" % name) | 361 self.ccode .append("\t%s = NULL;" % name) |
362 self.addintype("i", name) | 362 self.addintype("i", name) |
363 | 363 |
364 # output parameters | 364 # output parameters |
365 | 365 |
366 def outputvoid(self, type, name): | 366 def outputvoid(self, type, name): |
367 self.ccode.append("%s;" % self.call) # just call the function | 367 self.ccode.append("\t%s;" % self.call) # just call the function |
368 | 368 |
369 def outputstring(self, type, name, const): | 369 def outputstring(self, type, name, const): |
370 self.cdecls.append("const char *%s;" % name) | 370 self.cdecls.append("\tconst char *%s;" % name) |
371 self.ccode.append("%s = null_to_empty(%s);" % (name, self.call)) | 371 self.ccode.append("\t%s = null_to_empty(%s);" % (name, self.call)) |
372 self.cparamsout.append(("STRING", name)) | 372 self.cparamsout.append(("STRING", name)) |
373 self.addouttype("s", name) | 373 self.addouttype("s", name) |
374 if not const: | 374 if not const: |
375 self.ccodeout.append("g_free(%s);" % name) | 375 self.ccodeout.append("\tg_free(%s);" % name) |
376 | 376 |
377 def outputsimple(self, type, name): | 377 def outputsimple(self, type, name): |
378 self.cdecls.append("dbus_int32_t %s;" % name) | 378 self.cdecls.append("\tdbus_int32_t %s;" % name) |
379 self.ccode.append("%s = %s;" % (name, self.call)) | 379 self.ccode.append("\t%s = %s;" % (name, self.call)) |
380 self.cparamsout.append(("INT32", name)) | 380 self.cparamsout.append(("INT32", name)) |
381 self.addouttype("i", name) | 381 self.addouttype("i", name) |
382 | 382 |
383 def outputgaimstructure(self, type, name): | 383 def outputgaimstructure(self, type, name): |
384 self.cdecls.append("dbus_int32_t %s;" % name) | 384 self.cdecls.append("\tdbus_int32_t %s;" % name) |
385 self.ccode .append("GAIM_DBUS_POINTER_TO_ID(%s, %s, error_DBUS);" % (name, self.call)) | 385 self.ccode .append("\tGAIM_DBUS_POINTER_TO_ID(%s, %s, error_DBUS);" % (name, self.call)) |
386 self.cparamsout.append(("INT32", name)) | 386 self.cparamsout.append(("INT32", name)) |
387 self.addouttype("i", name) | 387 self.addouttype("i", name) |
388 | 388 |
389 # GList*, GSList*, assume that list is a list of objects | 389 # GList*, GSList*, assume that list is a list of objects |
390 | 390 |
393 | 393 |
394 # fixme: we assume that this is a list of objects, not a list | 394 # fixme: we assume that this is a list of objects, not a list |
395 # of strings | 395 # of strings |
396 | 396 |
397 def outputlist(self, type, name): | 397 def outputlist(self, type, name): |
398 self.cdecls.append("dbus_int32_t %s_LEN;" % name) | 398 self.cdecls.append("\tdbus_int32_t %s_LEN;" % name) |
399 self.ccodeout.append("g_free(%s);" % name) | 399 self.ccodeout.append("\tg_free(%s);" % name) |
400 | 400 |
401 if self.function.name in stringlists: | 401 if self.function.name in stringlists: |
402 self.cdecls.append("char **%s;" % name) | 402 self.cdecls.append("\tchar **%s;" % name) |
403 self.ccode.append("%s = gaim_%s_to_array(%s, FALSE, &%s_LEN);" % \ | 403 self.ccode.append("\t%s = gaim_%s_to_array(%s, FALSE, &%s_LEN);" % \ |
404 (name, type[0], self.call, name)) | 404 (name, type[0], self.call, name)) |
405 self.cparamsout.append("DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &%s, %s_LEN" \ | 405 self.cparamsout.append("\tDBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &%s, %s_LEN" \ |
406 % (name, name)) | 406 % (name, name)) |
407 self.addouttype("as", name) | 407 self.addouttype("as", name) |
408 else: | 408 else: |
409 self.cdecls.append("dbus_int32_t *%s;" % name) | 409 self.cdecls.append("\tdbus_int32_t *%s;" % name) |
410 self.ccode.append("%s = gaim_dbusify_%s(%s, FALSE, &%s_LEN);" % \ | 410 self.ccode.append("\t%s = gaim_dbusify_%s(%s, FALSE, &%s_LEN);" % \ |
411 (name, type[0], self.call, name)) | 411 (name, type[0], self.call, name)) |
412 self.cparamsout.append("DBUS_TYPE_ARRAY, DBUS_TYPE_INT32, &%s, %s_LEN" \ | 412 self.cparamsout.append("\tDBUS_TYPE_ARRAY, DBUS_TYPE_INT32, &%s, %s_LEN" \ |
413 % (name, name)) | 413 % (name, name)) |
414 self.addouttype("ai", name) | 414 self.addouttype("ai", name) |
415 | 415 |
416 | 416 |
417 class BindingSet: | 417 class BindingSet: |