diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2008-11-22 00:23:11 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2008-11-22 00:23:11 +0800 |
commit | abb968c6cdc50023b248b328a403444e644619bc (patch) | |
tree | 677efd848554bd613de1f09f01d3146d1c911288 /tools/glib-errors-enum-header-gen.py | |
parent | 52bc77159e915ea52e32b4d7873aa644f885a859 (diff) | |
download | gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.tar gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.tar.gz gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.tar.bz2 gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.tar.lz gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.tar.xz gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.tar.zst gsoc2013-empathy-abb968c6cdc50023b248b328a403444e644619bc.zip |
Update tools to latest version of tp-glib and include a gitignore
svn path=/trunk/; revision=1883
Diffstat (limited to 'tools/glib-errors-enum-header-gen.py')
-rw-r--r-- | tools/glib-errors-enum-header-gen.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tools/glib-errors-enum-header-gen.py b/tools/glib-errors-enum-header-gen.py new file mode 100644 index 000000000..64939b414 --- /dev/null +++ b/tools/glib-errors-enum-header-gen.py @@ -0,0 +1,75 @@ +#!/usr/bin/python + +import sys +import xml.dom.minidom + +from libglibcodegen import NS_TP, camelcase_to_upper, get_docstring, \ + get_descendant_text + +class Generator(object): + def __init__(self, dom): + self.dom = dom + self.errors = self.dom.getElementsByTagNameNS(NS_TP, 'errors')[0] + + def do_header(self): + print '/* Generated from the Telepathy spec\n' + copyrights = self.errors.getElementsByTagNameNS(NS_TP, 'copyright') + for copyright in copyrights: + print get_descendant_text(copyright) + license = self.errors.getElementsByTagNameNS(NS_TP, 'license')[0] + print '\n' + get_descendant_text(license) + '\n*/' + + def do_gtkdoc(self): + for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + ns = error.parentNode.getAttribute('namespace') + nick = error.getAttribute('name').replace(' ', '') + enum = 'TP_ERROR_' + camelcase_to_upper(nick.replace('.', '')) + print ' * @' + enum + ': ' + ns + '.' + nick + ':' + print ' * ' + get_docstring(error) + ' ' + + def do_enumnames(self): + for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + nick = error.getAttribute('name').replace(' ', '') + enum = 'TP_ERROR_' + camelcase_to_upper(nick.replace('.', '')) + print ' ' + enum + ',' + + def do_get_type(self): + print """ +#include <glib-object.h> + +G_BEGIN_DECLS + +GType tp_error_get_type (void); + +/** + * TP_TYPE_ERROR: + * + * The GType of the Telepathy error enumeration. + */ +#define TP_TYPE_ERROR (tp_error_get_type()) +""" + + def do_enum(self): + print """\ +/** + * TpError:""" + self.do_gtkdoc() + print """\ + * + * Enumerated type representing the Telepathy D-Bus errors. + */ +typedef enum {""" + self.do_enumnames() + print """\ +} TpError; + +G_END_DECLS""" + + def __call__(self): + self.do_header() + self.do_get_type() + self.do_enum() + +if __name__ == '__main__': + argv = sys.argv[1:] + Generator(xml.dom.minidom.parse(argv[0]))() |