diff options
Diffstat (limited to 'Release/share/glib-2.0/codegen/dbustypes.py')
-rw-r--r-- | Release/share/glib-2.0/codegen/dbustypes.py | 424 |
1 files changed, 0 insertions, 424 deletions
diff --git a/Release/share/glib-2.0/codegen/dbustypes.py b/Release/share/glib-2.0/codegen/dbustypes.py deleted file mode 100644 index 8787c92..0000000 --- a/Release/share/glib-2.0/codegen/dbustypes.py +++ /dev/null @@ -1,424 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# 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 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, see <http://www.gnu.org/licenses/>. -# -# Author: David Zeuthen <davidz@redhat.com> - -from . import utils - -class Annotation: - def __init__(self, key, value): - self.key = key - self.value = value - self.annotations = [] - -class Arg: - def __init__(self, name, signature): - self.name = name - self.signature = signature - self.annotations = [] - self.doc_string = '' - self.since = '' - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, arg_number): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - - if self.name == None: - self.name = 'unnamed_arg%d'%arg_number - # default to GVariant - self.ctype_in_g = 'GVariant *' - self.ctype_in = 'GVariant *' - self.ctype_in_dup = 'GVariant *' - self.ctype_out = 'GVariant **' - self.gtype = 'G_TYPE_VARIANT' - self.free_func = 'g_variant_unref' - self.format_in = '@' + self.signature - self.format_out = '@' + self.signature - self.gvariant_get = 'XXX' - self.gvalue_get = 'g_value_get_variant' - if not utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.ForceGVariant'): - if self.signature == 'b': - self.ctype_in_g = 'gboolean ' - self.ctype_in = 'gboolean ' - self.ctype_out = 'gboolean *' - self.gtype = 'G_TYPE_BOOLEAN' - self.free_func = None - self.format_in = 'b' - self.format_out = 'b' - self.gvariant_get = 'g_variant_get_boolean' - self.gvalue_get = 'g_value_get_boolean' - elif self.signature == 'y': - self.ctype_in_g = 'guchar ' - self.ctype_in = 'guchar ' - self.ctype_out = 'guchar *' - self.gtype = 'G_TYPE_UCHAR' - self.free_func = None - self.format_in = 'y' - self.format_out = 'y' - self.gvariant_get = 'g_variant_get_byte' - self.gvalue_get = 'g_value_get_uchar' - elif self.signature == 'n': - self.ctype_in_g = 'gint ' - self.ctype_in = 'gint16 ' - self.ctype_out = 'gint16 *' - self.gtype = 'G_TYPE_INT' - self.free_func = None - self.format_in = 'n' - self.format_out = 'n' - self.gvariant_get = 'g_variant_get_int16' - self.gvalue_get = 'g_value_get_int' - elif self.signature == 'q': - self.ctype_in_g = 'guint ' - self.ctype_in = 'guint16 ' - self.ctype_out = 'guint16 *' - self.gtype = 'G_TYPE_UINT' - self.free_func = None - self.format_in = 'q' - self.format_out = 'q' - self.gvariant_get = 'g_variant_get_uint16' - self.gvalue_get = 'g_value_get_uint' - elif self.signature == 'i': - self.ctype_in_g = 'gint ' - self.ctype_in = 'gint ' - self.ctype_out = 'gint *' - self.gtype = 'G_TYPE_INT' - self.free_func = None - self.format_in = 'i' - self.format_out = 'i' - self.gvariant_get = 'g_variant_get_int32' - self.gvalue_get = 'g_value_get_int' - elif self.signature == 'u': - self.ctype_in_g = 'guint ' - self.ctype_in = 'guint ' - self.ctype_out = 'guint *' - self.gtype = 'G_TYPE_UINT' - self.free_func = None - self.format_in = 'u' - self.format_out = 'u' - self.gvariant_get = 'g_variant_get_uint32' - self.gvalue_get = 'g_value_get_uint' - elif self.signature == 'x': - self.ctype_in_g = 'gint64 ' - self.ctype_in = 'gint64 ' - self.ctype_out = 'gint64 *' - self.gtype = 'G_TYPE_INT64' - self.free_func = None - self.format_in = 'x' - self.format_out = 'x' - self.gvariant_get = 'g_variant_get_int64' - self.gvalue_get = 'g_value_get_int64' - elif self.signature == 't': - self.ctype_in_g = 'guint64 ' - self.ctype_in = 'guint64 ' - self.ctype_out = 'guint64 *' - self.gtype = 'G_TYPE_UINT64' - self.free_func = None - self.format_in = 't' - self.format_out = 't' - self.gvariant_get = 'g_variant_get_uint64' - self.gvalue_get = 'g_value_get_uint64' - elif self.signature == 'd': - self.ctype_in_g = 'gdouble ' - self.ctype_in = 'gdouble ' - self.ctype_out = 'gdouble *' - self.gtype = 'G_TYPE_DOUBLE' - self.free_func = None - self.format_in = 'd' - self.format_out = 'd' - self.gvariant_get = 'g_variant_get_double' - self.gvalue_get = 'g_value_get_double' - elif self.signature == 's': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = 's' - self.format_out = 's' - self.gvariant_get = 'g_variant_get_string' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'o': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = 'o' - self.format_out = 'o' - self.gvariant_get = 'g_variant_get_string' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'g': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = 'g' - self.format_out = 'g' - self.gvariant_get = 'g_variant_get_string' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'ay': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = '^ay' - self.format_out = '^ay' - self.gvariant_get = 'g_variant_get_bytestring' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'as': - self.ctype_in_g = 'const gchar *const *' - self.ctype_in = 'const gchar *const *' - self.ctype_in_dup = 'gchar **' - self.ctype_out = 'gchar ***' - self.gtype = 'G_TYPE_STRV' - self.free_func = 'g_strfreev' - self.format_in = '^as' - self.format_out = '^as' - self.gvariant_get = 'g_variant_get_strv' - self.gvalue_get = 'g_value_get_boxed' - elif self.signature == 'ao': - self.ctype_in_g = 'const gchar *const *' - self.ctype_in = 'const gchar *const *' - self.ctype_in_dup = 'gchar **' - self.ctype_out = 'gchar ***' - self.gtype = 'G_TYPE_STRV' - self.free_func = 'g_strfreev' - self.format_in = '^ao' - self.format_out = '^ao' - self.gvariant_get = 'g_variant_get_objv' - self.gvalue_get = 'g_value_get_boxed' - elif self.signature == 'aay': - self.ctype_in_g = 'const gchar *const *' - self.ctype_in = 'const gchar *const *' - self.ctype_in_dup = 'gchar **' - self.ctype_out = 'gchar ***' - self.gtype = 'G_TYPE_STRV' - self.free_func = 'g_strfreev' - self.format_in = '^aay' - self.format_out = '^aay' - self.gvariant_get = 'g_variant_get_bytestring_array' - self.gvalue_get = 'g_value_get_boxed' - -class Method: - def __init__(self, name): - self.name = name - self.in_args = [] - self.out_args = [] - self.annotations = [] - self.doc_string = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - if len(self.since) == 0: - self.since = containing_iface.since - - name = self.name - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - self.name_lower = overridden_name.lower() - else: - if overridden_name: - name = overridden_name - self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_') - self.name_hyphen = self.name_lower.replace('_', '-') - - arg_count = 0 - for a in self.in_args: - a.post_process(interface_prefix, cns, cns_upper, cns_lower, arg_count) - arg_count += 1 - - for a in self.out_args: - a.post_process(interface_prefix, cns, cns_upper, cns_lower, arg_count) - arg_count += 1 - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - -class Signal: - def __init__(self, name): - self.name = name - self.args = [] - self.annotations = [] - self.doc_string = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - if len(self.since) == 0: - self.since = containing_iface.since - - name = self.name - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - self.name_lower = overridden_name.lower() - else: - if overridden_name: - name = overridden_name - self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_') - self.name_hyphen = self.name_lower.replace('_', '-') - - arg_count = 0 - for a in self.args: - a.post_process(interface_prefix, cns, cns_upper, cns_lower, arg_count) - arg_count += 1 - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - -class Property: - def __init__(self, name, signature, access): - self.name = name - self.signature = signature - self.access = access - self.annotations = [] - self.arg = Arg('value', self.signature) - self.arg.annotations = self.annotations - self.readable = False - self.writable = False - if self.access == 'readwrite': - self.readable = True - self.writable = True - elif self.access == 'read': - self.readable = True - elif self.access == 'write': - self.writable = True - else: - raise RuntimeError('Invalid access type %s'%self.access) - self.doc_string = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - if len(self.since) == 0: - self.since = containing_iface.since - - name = self.name - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - self.name_lower = overridden_name.lower() - else: - if overridden_name: - name = overridden_name - self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_') - self.name_hyphen = self.name_lower.replace('_', '-') - # don't clash with the GType getter, e.g.: GType foo_bar_get_type (void); G_GNUC_CONST - if self.name_lower == 'type': - self.name_lower = 'type_' - - # recalculate arg - self.arg.annotations = self.annotations - self.arg.post_process(interface_prefix, cns, cns_upper, cns_lower, 0) - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - -class Interface: - def __init__(self, name): - self.name = name - self.methods = [] - self.signals = [] - self.properties = [] - self.annotations = [] - self.doc_string = '' - self.doc_string_brief = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, c_namespace): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.doc_string_brief) == 0: - self.doc_string_brief = utils.lookup_brief_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - - if len(c_namespace) > 0: - if utils.is_ugly_case(c_namespace): - cns = c_namespace.replace('_', '') - cns_upper = c_namespace.upper() + '_' - cns_lower = c_namespace.lower() + '_' - else: - cns = c_namespace - cns_upper = utils.camel_case_to_uscore(c_namespace).upper() + '_' - cns_lower = utils.camel_case_to_uscore(c_namespace).lower() + '_' - else: - cns = '' - cns_upper = '' - cns_lower = '' - - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - name = overridden_name.replace('_', '') - name_with_ns = cns + name - self.name_without_prefix = name - self.camel_name = name_with_ns - self.ns_upper = cns_upper - self.name_lower = cns_lower + overridden_name.lower() - self.name_upper = overridden_name.upper() - - #raise RuntimeError('handle Ugly_Case ', overridden_name) - else: - if overridden_name: - name = overridden_name - else: - name = self.name - if name.startswith(interface_prefix): - name = name[len(interface_prefix):] - self.name_without_prefix = name - name = utils.strip_dots(name) - name_with_ns = utils.strip_dots(cns + '.' + name) - self.camel_name = name_with_ns - self.ns_upper = cns_upper - self.name_lower = cns_lower + utils.camel_case_to_uscore(name) - self.name_upper = utils.camel_case_to_uscore(name).upper() - - self.name_hyphen = self.name_upper.lower().replace('_', '-') - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - - for m in self.methods: - m.post_process(interface_prefix, cns, cns_upper, cns_lower, self) - - for s in self.signals: - s.post_process(interface_prefix, cns, cns_upper, cns_lower, self) - - for p in self.properties: - p.post_process(interface_prefix, cns, cns_upper, cns_lower, self) |