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*/'
23 for error
in self
.errors
.getElementsByTagNameNS(NS_TP
, 'error'):
24 ns
= error
.parentNode
.getAttribute('namespace')
25 nick
= error
.getAttribute('name').replace(' ', '')
26 enum
= 'TP_ERROR_' + camelcase_to_upper(nick
.replace('.', ''))
27 print ' * @' + enum
+ ': ' + ns
+ '.' + nick
+ ':'
28 print ' * ' + get_docstring(error
) + ' '
30 def do_enumnames(self
):
31 for error
in self
.errors
.getElementsByTagNameNS(NS_TP
, 'error'):
32 nick
= error
.getAttribute('name').replace(' ', '')
33 enum
= 'TP_ERROR_' + camelcase_to_upper(nick
.replace('.', ''))
34 print ' ' + enum
+ ','
36 def do_get_type(self
):
38 #include <glib-object.h>
42 GType tp_error_get_type (void);
47 * The GType of the Telepathy error enumeration.
49 #define TP_TYPE_ERROR (tp_error_get_type())
59 * Enumerated type representing the Telepathy D-Bus errors.
73 if __name__
== '__main__':
75 Generator(xml
.dom
.minidom
.parse(argv
[0]))()