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