6 from libglibcodegen
import NS_TP
, camelcase_to_upper
, get_docstring
, \
9 class Generator(object):
10 def __init__(self
, dom
):
12 self
.errors
= self
.dom
.getElementsByTagNameNS(NS_TP
, 'errors')[0]
15 print '/* Generated from the Telepathy spec\n'
16 copyrights
= self
.errors
.getElementsByTagNameNS(NS_TP
, 'copyright')
17 for copyright
in copyrights
:
18 print get_descendant_text(copyright
)
19 license
= self
.errors
.getElementsByTagNameNS(NS_TP
, 'license')[0]
20 print '\n' + get_descendant_text(license
) + '\n*/'
22 def do_enum_values(self
):
23 for error
in self
.errors
.getElementsByTagNameNS(NS_TP
, 'error'):
25 nick
= error
.getAttribute('name').replace(' ', '')
26 name
= camelcase_to_upper(nick
.replace('.', ''))
27 ns
= error
.parentNode
.getAttribute('namespace')
28 enum
= 'TP_ERROR_' + name
29 print ' /* ' + ns
+ '.' + name
30 print ' ' + get_docstring(error
)
32 print ' { %s, "%s", "%s" },' % (enum
, enum
, nick
)
35 def do_get_type(self
):
37 #include <_gen/telepathy-errors.h>
40 tp_error_get_type (void)
42 static GType etype = 0;
43 if (G_UNLIKELY (etype == 0))
45 static const GEnumValue values[] = {"""
50 etype = g_enum_register_static ("TpError", values);
60 if __name__
== '__main__':
62 Generator(xml
.dom
.minidom
.parse(argv
[0]))()