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]))()