summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRobert McQueen <robert.mcqueen@collabora.co.uk>2007-11-11 22:14:08 +0000
committerRobert McQueen <robert.mcqueen@collabora.co.uk>2007-11-11 22:14:08 +0000
commitfc19c4cc2fe32f538fb96bfc97d59f93d48a2224 (patch)
treecb035ae33c0b94bf011e1da9ab962ec84e0ed575 /tools
parent227188065b47cf8d05a92f2b28551bd5665701c5 (diff)
downloadtelepathy-farstream-fc19c4cc2fe32f538fb96bfc97d59f93d48a2224.tar.gz
remove deprecated and unused generate/ and tools/ machinery
20071111221408-418b8-944788a24553591effdc3908b36b61cf0ec0cd87.gz
Diffstat (limited to 'tools')
-rw-r--r--tools/.git-darcs-dir0
-rw-r--r--tools/Makefile.am3
-rw-r--r--tools/generrors.py65
-rw-r--r--tools/gengobject.py427
-rw-r--r--tools/geninterfaces.py23
5 files changed, 0 insertions, 518 deletions
diff --git a/tools/.git-darcs-dir b/tools/.git-darcs-dir
deleted file mode 100644
index e69de29..0000000
--- a/tools/.git-darcs-dir
+++ /dev/null
diff --git a/tools/Makefile.am b/tools/Makefile.am
deleted file mode 100644
index 9bfdbcc..0000000
--- a/tools/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTRA_DIST = \
- generrors.py \
- gengobject.py
diff --git a/tools/generrors.py b/tools/generrors.py
deleted file mode 100644
index 050ec4a..0000000
--- a/tools/generrors.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/python2.4
-import telepathy.errors
-import inspect
-import gengobject
-
-out = open("telepathy-errors.h", 'w')
-
-gengobject.print_license(out, "telepathy-errors.h", "Header for Telepathy error types")
-
-gengobject.print_header_begin(out, "telepathy_errors")
-out.write("typedef enum\n{\n")
-
-errors = [];
-max_name_length = 0
-for (cname,val) in telepathy.errors.__dict__.items():
- if inspect.isclass(val):
- if '_dbus_error_name' in val.__dict__:
- errors.append(val)
- if len(val.__name__) > max_name_length:
- max_name_length = len(val.__name__)
-
-
-for val in errors:
- line = " "+val.__name__ + ","
- line = line.ljust(max_name_length + 4)
- line += "/** "+val.__doc__.strip()
- while len (line) > 79:
- cut = line[:80]
- cutidx = cut.rfind(' ')
- if cutidx == 80:
- out.write(cut[:79])
- else:
- out.write(cut[:cutidx])
- out.write('\n')
- line = ' ' * (max_name_length +4) + ' * ' + line[cutidx:]
- out.write(line + '\n')
- out.write(' ' * (max_name_length + 4) + ' */\n')
-
-out.write("} TelepathyErrors; \n\n")
-
-out.write(
-"""
- GQuark telepathy_errors_quark (void);
- #define TELEPATHY_ERRORS telepathy_errors_quark ()
-""")
-
-
-gengobject.print_header_end(out, "telepathy_errors");
-
-out = open("telepathy-errors.c", 'w')
-
-out.write(
-"""
-#include <glib.h>
-#include "telepathy-errors.h"
-
-GQuark
-telepathy_errors_quark (void)
-{
- static GQuark quark = 0;
- if (!quark)
- quark = g_quark_from_static_string ("telepathy_errors");
- return quark;
-}
-""")
diff --git a/tools/gengobject.py b/tools/gengobject.py
deleted file mode 100644
index 2d98823..0000000
--- a/tools/gengobject.py
+++ /dev/null
@@ -1,427 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import os.path
-import xml.dom.minidom
-
-def cmdline_error():
- print "usage: gen-gobject xmlfile classname"
- sys.exit(1)
-
-def camelcase_to_lower(s):
- out ="";
- out += s[0].lower()
- last_upper=False
- if s[0].isupper():
- last_upper=True
- for i in range(1,len(s)):
- if s[i].isupper():
- if last_upper:
- if (i+1) < len(s) and s[i+1].islower():
- out += "_" + s[i].lower()
- else:
- out += s[i].lower()
- else:
- out += "_" + s[i].lower()
- last_upper=True
- else:
- out += s[i]
- last_upper=False
- return out
-
-def camelcase_to_upper(s):
- return camelcase_to_lower(s).upper()
-
-def type_to_gtype(s):
- if s == 'y': #byte
- return ("guchar", "G_TYPE_UCHAR","UCHAR", False)
- if s == 'b': #boolean
- return ("gboolean", "G_TYPE_BOOLEAN","BOOLEAN", False)
- if s == 'n': #int16
- return ("gint", "G_TYPE_INT","INT", False)
- if s == 'q': #uint16
- return ("guint", "G_TYPE_UINT","UINT", False)
- if s == 'i': #int32
- return ("gint", "G_TYPE_INT","INT", False)
- if s == 'u': #uint32
- return ("guint", "G_TYPE_UINT","INT", False)
- if s == 'x': #int64
- return ("gint", "G_TYPE_INT64","INT64", False)
- if s == 't': #uint32
- return ("guint", "G_TYPE_UINT64","UINT64", False)
- if s == 'd': #double
- return ("gdouble", "G_TYPE_DOUBLE","DOUBLE", False)
- if s == 's': #string
- return ("gchar *", "G_TYPE_STRING", "STRING", True)
- if s == 'o': #object path
- return ("gchar *", "DBUS_TYPE_G_OBJECT_PATH", "STRING", True)
- if s == 'as': #array of strings
- return ("gchar **", "G_TYPE_STRV", "BOXED", True)
- if s == 'v': #variant
- return ("GValue *", "G_TYPE_VALUE", "BOXED", True)
- if s[:3] == 'a{s': # dict mapping of strings to any marshalable value
- return ("GHashTable *", "DBUS_TYPE_G_STRING_HASHTABLE", "BOXED", False)
- if s == 'ay': #byte array
- return ("GArray *", "DBUS_TYPE_G_BYTE_ARRAY", "BOXED", True)
- if s == 'au': #uint array
- return ("GArray *", "DBUS_TYPE_G_UINT_ARRAY", "BOXED", True)
- if s == 'ai': #int array
- return ("GArray *", "DBUS_TYPE_G_INT_ARRAY", "BOXED", True)
- if s == 'ax': #int64 array
- return ("GArray *", "DBUS_TYPE_G_INT64_ARRAY", "BOXED", True)
- if s == 'at': #uint64 array
- return ("GArray *", "DBUS_TYPE_G_UINT64_ARRAY", "BOXED", True)
- if s == 'ad': #double array
- return ("GArray *", "DBUS_TYPE_G_DOUBLE_ARRAY", "BOXED", True)
- if s == 'ab': #boolean array
- return ("GArray *", "DBUS_TYPE_G_BOOLEAN_ARRAY", "BOXED", True)
- if s[:2] == 'a(': #array of structs
- return ("GArray *", "G_TYPE_BOXED", "BOXED", True)
- if s[:2] == 'a{': #dict
- return ("GHashTable *", "G_TYPE_BOXED", "BOXED", True)
-
- # we just don't know ..
- return ("gpointer", "G_TYPE_BOXED", "BOXED", True)
-
-
-def signal_to_marshal_type(signal):
- """
- return a list of strings indicating the marshalling type for this signal.
- """
-
- mtype=[]
- for i in signal.getElementsByTagName("arg"):
- name =i.getAttribute("name")
- type = i.getAttribute("type")
- mtype.append(type_to_gtype(type)[2])
-
- return mtype
-
-def signal_to_marshal_name(signal, prefix):
- mtype=signal_to_marshal_type(signal)
- if len(mtype):
- return prefix+'_marshal_VOID__' + '_'.join(mtype)
- else:
- return prefix+'_marshal_VOID__VOID'
-
-def signal_to_gtype_list(signal):
- gtype=[]
- for i in signal.getElementsByTagName("arg"):
- name =i.getAttribute("name")
- type = i.getAttribute("type")
- gtype.append(type_to_gtype(type)[1])
-
- return gtype
-
-
-def print_license(stream, filename, description):
- stream.write(
-"""/*
- * %s - %s
- * Copyright (C) 2005 Collabora Ltd.
- * Copyright (C) 2005 Nokia Corporation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-""" % (filename, description))
-
-def print_header_begin(stream, prefix):
- guardname = '__'+prefix.upper()+'_H__'
- stream.write ("#ifndef "+guardname+"\n")
- stream.write ("#define "+guardname+"\n\n")
-
- stream.write ("#include <glib-object.h>\n\n")
- stream.write ("G_BEGIN_DECLS\n\n")
-
-def print_header_end(stream, prefix):
- guardname = '__'+prefix.upper()+'_H__'
- stream.write ("\nG_END_DECLS\n\n")
- stream.write ("#endif /* #ifndef "+guardname+"*/\n")
-
-def print_simple_class_defn(stream, prefix, classname):
- stream.write ("typedef struct _%s %s;\n" % (classname,classname))
- stream.write ("typedef struct _%sClass %sClass;\n\n" % (classname,classname))
- stream.write ("struct _%sClass {\n" % classname)
- stream.write (" GObjectClass parent_class;\n")
- stream.write ("};\n\n")
-
- stream.write ("struct _%s {\n" % classname)
- stream.write (" GObject parent;\n")
- stream.write ("};\n")
-
- stream.write(
-"""
-GType %(prefix)s_get_type(void);
-
-""" % {'prefix':prefix,'uprefix':prefix.upper()})
-
- macro_prefix = prefix.upper().split('_',1)
- gtype = '_TYPE_'.join(macro_prefix)
-
- stream.write(
-"""/* TYPE MACROS */
-#define %(type)s \\
- (%(prefix)s_get_type())
-#define %(main)s_%(sub)s(obj) \\
- (G_TYPE_CHECK_INSTANCE_CAST((obj), %(type)s, %(name)s))
-#define %(main)s_%(sub)s_CLASS(klass) \\
- (G_TYPE_CHECK_CLASS_CAST((klass), %(type)s, %(name)sClass))
-#define %(main)s_IS_%(sub)s(obj) \\
- (G_TYPE_CHECK_INSTANCE_TYPE((obj), %(type)s))
-#define %(main)s_IS_%(sub)s_CLASS(klass) \\
- (G_TYPE_CHECK_CLASS_TYPE((klass), %(type)s))
-#define %(main)s_%(sub)s_GET_CLASS(obj) \\
- (G_TYPE_INSTANCE_GET_CLASS ((obj), %(type)s, %(name)sClass))
-
-""" % {"main":macro_prefix[0], "sub":macro_prefix[1], "type":gtype, "name":classname, "prefix":prefix})
-
-if __name__ == '__main__':
- try:
- classname = sys.argv[2]
- except IndexError:
- cmdline_error()
-
- prefix = camelcase_to_lower(classname)
- basename = prefix.replace('_','-')
- outname_header = basename + ".h"
- outname_body = basename + ".c"
- outname_signal_marshal = basename + "-signals-marshal.list"
-
- header=open(outname_header,'w')
- body=open(outname_body, 'w')
- signal_marshal=open(outname_signal_marshal, 'w')
-
- try:
- dom = xml.dom.minidom.parse(sys.argv[1])
- except IndexError:
- cmdline_error()
-
- signals = dom.getElementsByTagName("signal")
- signals.sort(key=lambda n: n.getAttributeNode("name").nodeValue)
- methods = dom.getElementsByTagName("method")
- methods.sort(key=lambda n: n.getAttributeNode("name").nodeValue)
-
- print_license(header, outname_header, "Header for " + classname)
- print_license(body, outname_body, "Source for " + classname)
- print_header_begin(header,prefix)
-
- print_simple_class_defn(header, prefix, classname)
-
- body.write(
-"""#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "%s"
-#include "%s-signals-marshal.h"
-
-#include "%s-glue.h"
-
-""" % (outname_header, basename, basename))
-
- body.write(
-"""G_DEFINE_TYPE(%(classname)s, %(prefix)s, G_TYPE_OBJECT)
-
-""" % {'classname':classname, 'prefix':prefix})
-
- if signals:
- body.write("/* signal enum */\nenum\n{\n")
- for signal in signals:
- dbus_name = signal.getAttributeNode("name").nodeValue
- body.write(" %s,\n" % camelcase_to_upper(dbus_name) )
- body.write(" LAST_SIGNAL\n};\n\n")
- body.write("static guint signals[LAST_SIGNAL] = {0};\n\n")
-
- gtypename = '_TYPE_'.join(prefix.upper().split('_',1))
-
- body.write("""/* private structure */
-typedef struct _%(classname)sPrivate %(classname)sPrivate;
-
-struct _%(classname)sPrivate
-{
- gboolean dispose_has_run;
-};
-
-#define %(uprefix)s_GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), %(gtypename)s, %(classname)sPrivate))
-""" % {'classname':classname, 'uprefix':prefix.upper(), 'gtypename':gtypename})
-
- body.write(
-"""
-static void
-%(prefix)s_init (%(classname)s *obj)
-{
- %(classname)sPrivate *priv = %(uprefix)s_GET_PRIVATE (obj);
-
- /* allocate any data required by the object here */
- /* this line allows the plain autogenerated code to compile with -Werror
- remove it!*/
- g_assert(priv);
-}
-
-static void %(prefix)s_dispose (GObject *object);
-static void %(prefix)s_finalize (GObject *object);
-
-static void
-%(prefix)s_class_init (%(classname)sClass *%(prefix)s_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (%(prefix)s_class);
-
- g_type_class_add_private (%(prefix)s_class, sizeof (%(classname)sPrivate));
-
- object_class->dispose = %(prefix)s_dispose;
- object_class->finalize = %(prefix)s_finalize;
-""" % {"prefix":prefix, "classname":classname, 'uprefix':prefix.upper()})
-
- for signal in signals:
- mtype = signal_to_marshal_type(signal)
- if len(mtype):
- signal_marshal.write("VOID:"+','.join(mtype)+"\n")
- else:
- signal_marshal.write("VOID:VOID\n")
-
- header.write("\n")
-
- for signal in signals:
- dbus_name = signal.getAttributeNode("name").nodeValue
- gtypelist=signal_to_gtype_list(signal)
-
- body.write(
-"""
- signals[%s] =
- g_signal_new ("%s",
- G_OBJECT_CLASS_TYPE (%s_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
- 0,
- NULL, NULL,
- %s,
- G_TYPE_NONE, %s);
-""" % (camelcase_to_upper(dbus_name),
- camelcase_to_lower(dbus_name).replace('_','-'),
- prefix,
- signal_to_marshal_name(signal,prefix), ', '.join([str(len(gtypelist))] + gtypelist)))
-
- body.write(
-"""
- dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (%(prefix)s_class), &dbus_glib_%(prefix)s_object_info);
-}
-
-void
-%(prefix)s_dispose (GObject *object)
-{
- %(classname)s *self = %(uprefix)s (object);
- %(classname)sPrivate *priv = %(uprefix)s_GET_PRIVATE (self);
-
- if (priv->dispose_has_run)
- return;
-
- priv->dispose_has_run = TRUE;
-
- /* release any references held by the object here */
-
- if (G_OBJECT_CLASS (%(prefix)s_parent_class)->dispose)
- G_OBJECT_CLASS (%(prefix)s_parent_class)->dispose (object);
-}
-
-void
-%(prefix)s_finalize (GObject *object)
-{
- %(classname)s *self = %(uprefix)s (object);
- %(classname)sPrivate *priv = %(uprefix)s_GET_PRIVATE (self);
-
- /* free any data held directly by the object here */
- /* this line allows the plain autogenerated code to compile with -Werror
- remove it!*/
- g_assert(priv);
-
- G_OBJECT_CLASS (%(prefix)s_parent_class)->finalize (object);
-}
-
-
-""" % {'classname':classname,'prefix':prefix, 'uprefix':prefix.upper()})
-
- for method in methods:
- dbus_method_name = method.getAttributeNode("name").nodeValue
- c_method_name = prefix + '_' + camelcase_to_lower(dbus_method_name)
- c_decl = 'gboolean '+c_method_name+' ('+classname+' *obj'
- async=False
- ret_count=0
-
- for i in method.getElementsByTagName("annotation"):
- if i.getAttribute("name") == "org.freedesktop.DBus.GLib.Async":
- async=True
-
- for i in method.getElementsByTagName("arg"):
- name =i.getAttribute("name")
- direction = i.getAttribute("direction")
- type = i.getAttribute("type")
-
- if async and direction=="out":
- continue
-
- if not name and direction == "out":
- if ret_count==0:
- name = "ret"
- else:
- name = "ret"+str(ret_count)
- ret_count += 1
-
- gtype = type_to_gtype(type)[0]
- if direction =="out":
- gtype+='*'
- else:
- if type_to_gtype(type)[3]:
- gtype="const "+gtype
- c_decl +=", "+gtype+" "+name
- if async:
- c_decl += ", DBusGMethodInvocation *context)"
- else:
- c_decl += ", GError **error)"
-
- interface = method.parentNode.getAttribute("name");
- header.write(c_decl+";\n")
- body.write(
-"""
-/**
- * %(c_method_name)s
- *
- * Implements DBus method %(method)s
- * on interface %(interface)s
- *""" % {'c_method_name':c_method_name, 'method':dbus_method_name, 'interface':interface})
- if async:
- body.write(
-"""
- * @context: The DBUS invocation context to use to return values
- * or throw an error.
- */
-""")
- else:
- body.write(
-"""
- * @error: Used to return a pointer to a GError detailing any error
- * that occured, DBus will throw the error only if this
- * function returns false.
- *
- * Returns: TRUE if successful, FALSE if an error was thrown.
- */
-""")
- body.write(c_decl+"\n{\n return TRUE;\n}\n\n")
-
- header.write('\n')
-
- print_header_end(header,prefix)
- header.close()
- body.close()
diff --git a/tools/geninterfaces.py b/tools/geninterfaces.py
deleted file mode 100644
index 74c3024..0000000
--- a/tools/geninterfaces.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/python2.4
-import telepathy.interfaces
-import inspect
-import gengobject
-
-out = open("telepathy-interfaces.h", 'w')
-
-gengobject.print_license(out, "telepathy-interfaces.h", "Header for Telepathy interface names")
-
-gengobject.print_header_begin(out, "telepathy_interfaces")
-
-interfaces = telepathy.interfaces.__dict__.keys()
-interfaces.sort()
-
-for cname in interfaces:
- val = telepathy.interfaces.__dict__[cname]
- if cname[:2] !='__':
- out.write('#define TP_IFACE_'+cname +' \\\n')
- out.write(' "'+val+'"\n')
-
-
-gengobject.print_header_end(out, "telepathy_interfaces");
-