27 | 27 |
from getopt import gnu_getopt
|
28 | 28 |
|
29 | 29 |
from libtpcodegen import file_set_contents, key_by_name, u
|
30 | |
from libglibcodegen import Signature, type_to_gtype, \
|
31 | |
get_docstring, xml_escape, get_deprecated
|
|
30 |
from libglibcodegen import (Signature, type_to_gtype,
|
|
31 |
get_docstring, xml_escape, get_deprecated, copy_into_gvalue)
|
32 | 32 |
|
33 | 33 |
|
34 | 34 |
NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
|
|
204 | 204 |
self.b(' g_value_unset (args->values + %d);' % i)
|
205 | 205 |
self.b(' g_value_init (args->values + %d, %s);' % (i, gtype))
|
206 | 206 |
|
207 | |
if gtype == 'G_TYPE_STRING':
|
208 | |
self.b(' g_value_set_string (args->values + %d, %s);'
|
209 | |
% (i, name))
|
210 | |
elif marshaller == 'BOXED':
|
211 | |
self.b(' g_value_set_boxed (args->values + %d, %s);'
|
212 | |
% (i, name))
|
213 | |
elif gtype == 'G_TYPE_UCHAR':
|
214 | |
self.b(' g_value_set_uchar (args->values + %d, %s);'
|
215 | |
% (i, name))
|
216 | |
elif gtype == 'G_TYPE_BOOLEAN':
|
217 | |
self.b(' g_value_set_boolean (args->values + %d, %s);'
|
218 | |
% (i, name))
|
219 | |
elif gtype == 'G_TYPE_INT':
|
220 | |
self.b(' g_value_set_int (args->values + %d, %s);'
|
221 | |
% (i, name))
|
222 | |
elif gtype == 'G_TYPE_UINT':
|
223 | |
self.b(' g_value_set_uint (args->values + %d, %s);'
|
224 | |
% (i, name))
|
225 | |
elif gtype == 'G_TYPE_INT64':
|
226 | |
self.b(' g_value_set_int (args->values + %d, %s);'
|
227 | |
% (i, name))
|
228 | |
elif gtype == 'G_TYPE_UINT64':
|
229 | |
self.b(' g_value_set_uint64 (args->values + %d, %s);'
|
230 | |
% (i, name))
|
231 | |
elif gtype == 'G_TYPE_DOUBLE':
|
232 | |
self.b(' g_value_set_double (args->values + %d, %s);'
|
233 | |
% (i, name))
|
234 | |
else:
|
235 | |
assert False, ("Don't know how to put %s in a GValue"
|
236 | |
% gtype)
|
|
207 |
self.b(' ' + copy_into_gvalue('args->values + %d' % i,
|
|
208 |
gtype, marshaller, name))
|
237 | 209 |
self.b('')
|
238 | 210 |
|
239 | 211 |
self.b(' tp_proxy_signal_connection_v0_take_results (sc, args);')
|
|
572 | 544 |
self.b(' g_value_unset (args->values + %d);' % i)
|
573 | 545 |
self.b(' g_value_init (args->values + %d, %s);' % (i, gtype))
|
574 | 546 |
|
575 | |
if gtype == 'G_TYPE_STRING':
|
576 | |
self.b(' g_value_take_string (args->values + %d, %s);'
|
577 | |
% (i, name))
|
578 | |
elif marshaller == 'BOXED':
|
579 | |
self.b(' g_value_take_boxed (args->values + %d, %s);'
|
580 | |
% (i, name))
|
581 | |
elif gtype == 'G_TYPE_UCHAR':
|
582 | |
self.b(' g_value_set_uchar (args->values + %d, %s);'
|
583 | |
% (i, name))
|
584 | |
elif gtype == 'G_TYPE_BOOLEAN':
|
585 | |
self.b(' g_value_set_boolean (args->values + %d, %s);'
|
586 | |
% (i, name))
|
587 | |
elif gtype == 'G_TYPE_INT':
|
588 | |
self.b(' g_value_set_int (args->values + %d, %s);'
|
589 | |
% (i, name))
|
590 | |
elif gtype == 'G_TYPE_UINT':
|
591 | |
self.b(' g_value_set_uint (args->values + %d, %s);'
|
592 | |
% (i, name))
|
593 | |
elif gtype == 'G_TYPE_INT64':
|
594 | |
self.b(' g_value_set_int (args->values + %d, %s);'
|
595 | |
% (i, name))
|
596 | |
elif gtype == 'G_TYPE_UINT64':
|
597 | |
self.b(' g_value_set_uint (args->values + %d, %s);'
|
598 | |
% (i, name))
|
599 | |
elif gtype == 'G_TYPE_DOUBLE':
|
600 | |
self.b(' g_value_set_double (args->values + %d, %s);'
|
601 | |
% (i, name))
|
602 | |
else:
|
603 | |
assert False, ("Don't know how to put %s in a GValue"
|
604 | |
% gtype)
|
|
547 |
self.b(' ' + copy_into_gvalue('args->values + %d' % i,
|
|
548 |
gtype, marshaller, name))
|
605 | 549 |
|
606 | 550 |
self.b(' tp_proxy_pending_call_v0_take_results (user_data, '
|
607 | 551 |
'NULL, args);')
|