ó
Þw¶Vc           @   sS   d  d l  Z  d d l m Z d d l m Z d d l m Z d d d „  ƒ  YZ d S(	   iÿÿÿÿNi   (   t   config(   t   utils(   t	   dbustypest   CodeGeneratorc           B   s³   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s(  | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ t | ƒ d k rÐ t j | ƒ r• | j	 d d ƒ |  _ | j
 ƒ  d |  _ | j ƒ  d |  _ qâ t j | ƒ j
 ƒ  d |  _ t j | ƒ j ƒ  d |  _ n d |  _ d |  _ | |  _ |  j j j
 ƒ  j	 d d ƒ j	 d d ƒ j	 d d ƒ |  _ d  S(   Ni    t   _t    t   .t   -t   /(   t   docbook_gent   generate_objmanagert   ifacest   ht   ct	   namespacet   lenR   t   is_ugly_caset   replacet   uppert   ns_uppert   lowert   ns_lowert   camel_case_to_uscoret   interface_prefixt   namet   header_guard(   t   selfR   R   R   R
   R	   R   R   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   __init__   s"    									c         C   s  |  j  j d t j ƒ |  j  j d |  j j ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d	 ƒ |  j  j d
 ƒ |  j  j d ƒ |  j  j d ƒ |  j j d t j |  j |  j f ƒ |  j j d ƒ d  S(   Ns‰   /*
 * Generated by gdbus-codegen %s. DO NOT EDIT.
 *
 * The license of this code is the same as for the source it was derived from.
 */

sV   #ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

#include "%s"

#include <string.h>
s8   #ifdef G_OS_UNIX
#  include <gio/gunixfdlist.h>
#endif

sb   typedef struct
{
  GDBusArgInfo parent_struct;
  gboolean use_gvariant;
} _ExtendedGDBusArgInfo;

sƒ   typedef struct
{
  GDBusMethodInfo parent_struct;
  const gchar *signal_name;
  gboolean pass_fdlist;
} _ExtendedGDBusMethodInfo;

sk   typedef struct
{
  GDBusSignalInfo parent_struct;
  const gchar *signal_name;
} _ExtendedGDBusSignalInfo;

sˆ   typedef struct
{
  GDBusPropertyInfo parent_struct;
  const gchar *hyphen_name;
  gboolean use_gvariant;
} _ExtendedGDBusPropertyInfo;

sq   typedef struct
{
  GDBusInterfaceInfo parent_struct;
  const gchar *hyphen_name;
} _ExtendedGDBusInterfaceInfo;

s  typedef struct
{
  const _ExtendedGDBusPropertyInfo *info;
  guint prop_id;
  GValue orig_value; /* the value before the change */
} ChangedProperty;

static void
_changed_property_free (ChangedProperty *data)
{
  g_value_unset (&data->orig_value);
  g_free (data);
}

s‰  static gboolean
_g_strv_equal0 (gchar **a, gchar **b)
{
  gboolean ret = FALSE;
  guint n;
  if (a == NULL && b == NULL)
    {
      ret = TRUE;
      goto out;
    }
  if (a == NULL || b == NULL)
    goto out;
  if (g_strv_length (a) != g_strv_length (b))
    goto out;
  for (n = 0; a[n] != NULL; n++)
    if (g_strcmp0 (a[n], b[n]) != 0)
      goto out;
  ret = TRUE;
out:
  return ret;
}

s  static gboolean
_g_variant_equal0 (GVariant *a, GVariant *b)
{
  gboolean ret = FALSE;
  if (a == NULL && b == NULL)
    {
      ret = TRUE;
      goto out;
    }
  if (a == NULL || b == NULL)
    goto out;
  ret = g_variant_equal (a, b);
out:
  return ret;
}

sh  G_GNUC_UNUSED static gboolean
_g_value_equal (const GValue *a, const GValue *b)
{
  gboolean ret = FALSE;
  g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
  switch (G_VALUE_TYPE (a))
    {
      case G_TYPE_BOOLEAN:
        ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
        break;
      case G_TYPE_UCHAR:
        ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
        break;
      case G_TYPE_INT:
        ret = (g_value_get_int (a) == g_value_get_int (b));
        break;
      case G_TYPE_UINT:
        ret = (g_value_get_uint (a) == g_value_get_uint (b));
        break;
      case G_TYPE_INT64:
        ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
        break;
      case G_TYPE_UINT64:
        ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
        break;
      case G_TYPE_DOUBLE:
        {
          /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
          gdouble da = g_value_get_double (a);
          gdouble db = g_value_get_double (b);
          ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
        }
        break;
      case G_TYPE_STRING:
        ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
        break;
      case G_TYPE_VARIANT:
        ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
        break;
      default:
        if (G_VALUE_TYPE (a) == G_TYPE_STRV)
          ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
        else
          g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
        break;
    }
  return ret;
}

s¨   /*
 * Generated by gdbus-codegen %s. DO NOT EDIT.
 *
 * The license of this code is the same as for the source it was derived from.
 */

#ifndef __%s__
#define __%s__

s%   #include <gio/gio.h>

G_BEGIN_DECLS

(   R   t   writeR    t   VERSIONR   R   R   (   R   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_intro6   s"    2c   
      C   s  x8|  j  D]-} |  j j d ƒ |  j j d ƒ |  j j d | j ƒ |  j j d ƒ |  j j d | j | j | j f ƒ |  j j d | j | j | j | j | j f ƒ |  j j d | j | j | j | j f ƒ |  j j d | j | j | j | j | j f ƒ |  j j d ƒ |  j j d | j ƒ |  j j d	 | j | j f ƒ |  j j d
 | j | j f ƒ |  j j d ƒ |  j j d | j ƒ |  j j d ƒ |  j j d ƒ i  } t | j	 ƒ d k r¸|  j j d ƒ xÏ | j	 D]Á } t
 } t j | j d ƒ rt } n  | j d | j f } d | j } | d | j 7} | d d¡ 7} | ro| d 7} n  x+ | j D]  } | d | j | j f 7} qyW| d 7} | | | <qðWn  t | j ƒ d k rj|  j j d ƒ xŠ | j D]| } | j d | j f } d | j } | d | j 7} x+ | j D]  } | d | j | j f 7} q+W| d 7} | | | <qçWn  t | j ƒ d k rå|  j j d ƒ xS | j D]E }	 |	 j d |	 j f } d |	 j j |	 j | j f } | | | <q™Wn  x; t | j ƒ  d t j ƒD] } |  j j d | | ƒ qW|  j j d ƒ |  j j d ƒ |  j j d | j ƒ |  j j d ƒ |  j j d  | j ƒ |  j j d! | j ƒ |  j j d ƒ t | j	 ƒ d k r×|  j j d ƒ |  j j d" ƒ xä | j	 D]Ù } t
 } t j | j d ƒ rt } n  | j r-|  j j d# ƒ n  |  j j d$ | j | j | j f ƒ | rl|  j j d ƒ n  x1 | j D]& } |  j j d% | j | j f ƒ qvW|  j j d& ƒ |  j j d ƒ qçW|  j j d ƒ n  t | j ƒ d k rÉ|  j j d ƒ |  j j d' ƒ x§ | j D]œ } | j r8|  j j d# ƒ n  |  j j d( | j | j | j f ƒ x1 | j D]& } |  j j d | j | j f ƒ qhW|  j j d& ƒ |  j j d ƒ qW|  j j d ƒ n  t | j	 ƒ d k r£	|  j j d ƒ |  j j d) ƒ x| j	 D]„} t
 } t j | j d ƒ r2t } n  | j rN|  j j d# ƒ n  |  j j d* | j | j | j f ƒ x1 | j D]& } |  j j d | j | j f ƒ q~W| rÁ|  j j d ƒ n  |  j j d+ ƒ |  j j d ƒ | j rý|  j j d# ƒ n  |  j j d, | j | j | j f ƒ x1 | j D]& } |  j j d- | j | j f ƒ q-W| rp|  j j d. ƒ n  |  j j d/ ƒ |  j j d ƒ | j r¬|  j j d# ƒ n  |  j j d0 | j | j | j f ƒ x1 | j D]& } |  j j d | j | j f ƒ qÜW| r	|  j j d1 ƒ n  x1 | j D]& } |  j j d- | j | j f ƒ q)	W| rl	|  j j d. ƒ n  |  j j d2 ƒ |  j j d ƒ qW|  j j d ƒ n  t | j ƒ d k rõ
|  j j d ƒ |  j j d3 ƒ x| j D]}	 |	 j r
|  j j d# ƒ n  |  j j d4 |	 j j | j |	 j | j f ƒ |	 j j d  k r“
|	 j ra
|  j j d# ƒ n  |  j j d5 |	 j j | j |	 j | j f ƒ n  |	 j r¯
|  j j d# ƒ n  |  j j d6 | j |	 j | j |	 j j f ƒ |  j j d ƒ qâ	Wn  |  j j d ƒ |  j j d7 ƒ |  j j d ƒ |  j j d8 | j | j | j f ƒ |  j j d9 | j | j | j | j | j f ƒ |  j j d: | j | j | j | j | j f ƒ |  j j d; | j | j | j | j | j f ƒ |  j j d< | j | j | j | j f ƒ |  j j d= | j | j | j | j f ƒ |  j j d ƒ |  j j d> | j | j f ƒ |  j j d? | j | j f ƒ |  j j d@ | j | j f ƒ |  j j d ƒ |  j j dA | j ƒ |  j j d ƒ |  j j dB ƒ |  j j dC ƒ |  j j dD | j ƒ |  j j d ƒ |  j j d ƒ |  j j dE | j ƒ |  j j d ƒ |  j j dF ƒ |  j j d ƒ |  j j d ƒ |  j j dG | j ƒ |  j j d ƒ | j rÑ|  j j d# ƒ n  |  j j dH | j ƒ | j r|  j j d# ƒ n  |  j j dI | j | j f ƒ | j r@|  j j d# ƒ n  |  j j dJ | j | j f ƒ |  j j d ƒ | j rŒ|  j j d# ƒ n  |  j j dK | j ƒ | j r¿|  j j d# ƒ n  |  j j dL | j | j f ƒ | j rû|  j j d# ƒ n  |  j j dM | j | j f ƒ |  j j d ƒ |  j j d ƒ |  j j d7 ƒ |  j j d ƒ |  j j dN | j | j | j f ƒ |  j j dO | j | j | j | j | j f ƒ |  j j dP | j | j | j | j | j f ƒ |  j j dQ | j | j | j | j | j f ƒ |  j j dR | j | j | j | j f ƒ |  j j dS | j | j | j | j f ƒ |  j j d ƒ |  j j dT | j | j f ƒ |  j j dU | j | j f ƒ |  j j dV | j | j f ƒ |  j j d ƒ |  j j dW | j ƒ |  j j d ƒ |  j j dB ƒ |  j j dX ƒ |  j j dY | j ƒ |  j j d ƒ |  j j d ƒ |  j j dZ | j ƒ |  j j d ƒ |  j j d[ ƒ |  j j d ƒ |  j j d ƒ |  j j d\ | j ƒ |  j j d ƒ | j r|  j j d# ƒ n  |  j j d] | j | j f ƒ |  j j d ƒ q
 W|  j r	|  j j d ƒ |  j j d7 ƒ |  j j d ƒ |  j j d^ |  j |  j  f ƒ |  j j d_ |  j |  j |  j! f ƒ |  j j d` |  j |  j f ƒ |  j j da |  j |  j |  j! f ƒ |  j j d ƒ |  j j db |  j! ƒ |  j j dc |  j! |  j! f ƒ |  j j dd |  j! |  j! f ƒ |  j j d ƒ |  j j de |  j! ƒ |  j j df ƒ |  j j dg |  j  ƒ x_ |  j  D]T } | j rá|  j j d# ƒ n  |  j j dh | j |  j  | j j" ƒ  |  j! f ƒ q¿Wx_ |  j  D]T } | j rC|  j j d# ƒ n  |  j j di | j |  j  | j j" ƒ  |  j! f ƒ q!W|  j j d ƒ |  j j dj |  j |  j  f ƒ |  j j dk |  j |  j |  j! f ƒ |  j j dl |  j |  j |  j! f ƒ |  j j dm |  j |  j |  j! f ƒ |  j j dn |  j |  j f ƒ |  j j do |  j |  j f ƒ |  j j d ƒ |  j j dp |  j! |  j! f ƒ |  j j dq |  j! |  j! f ƒ |  j j dr |  j! |  j! f ƒ |  j j d ƒ |  j j ds |  j! ƒ |  j j d ƒ |  j j dB ƒ |  j j dt ƒ |  j j du |  j! ƒ |  j j d ƒ |  j j d ƒ |  j j dv |  j! ƒ |  j j d ƒ |  j j dw ƒ |  j j d ƒ |  j j d ƒ |  j j dx |  j  ƒ |  j j dy |  j! |  j  f ƒ |  j j d ƒ |  j j dz |  j |  j  f ƒ |  j j d{ |  j |  j |  j! f ƒ |  j j d| |  j |  j |  j! f ƒ |  j j d} |  j |  j |  j! f ƒ |  j j d~ |  j |  j f ƒ |  j j d |  j |  j f ƒ |  j j d ƒ |  j j d€ |  j! |  j! f ƒ |  j j d |  j! |  j! f ƒ |  j j d‚ |  j! |  j! f ƒ |  j j d ƒ |  j j dƒ |  j! ƒ |  j j d ƒ |  j j dB ƒ |  j j d„ ƒ |  j j d… |  j! ƒ |  j j d ƒ |  j j d ƒ |  j j d† |  j! ƒ |  j j d ƒ |  j j d‡ ƒ |  j j d ƒ |  j j d ƒ |  j j dˆ |  j  ƒ |  j j d‰ |  j! |  j  f ƒ x_ |  j  D]T } | j r|  j j d# ƒ n  |  j j dŠ |  j  | j j" ƒ  |  j! | j f ƒ q_W|  j j d ƒ |  j j d7 ƒ |  j j d ƒ |  j j d‹ |  j |  j  f ƒ |  j j dŒ |  j |  j |  j! f ƒ |  j j d |  j |  j |  j! f ƒ |  j j dŽ |  j |  j |  j! f ƒ |  j j d |  j |  j f ƒ |  j j d |  j |  j f ƒ |  j j d ƒ |  j j d‘ |  j! |  j! f ƒ |  j j d’ |  j! |  j! f ƒ |  j j d“ |  j! |  j! f ƒ |  j j d ƒ |  j j d” |  j! ƒ |  j j d ƒ |  j j dB ƒ |  j j d• ƒ |  j j d– |  j! ƒ |  j j d ƒ |  j j d ƒ |  j j d— |  j! ƒ |  j j d ƒ |  j j d˜ ƒ |  j j d ƒ |  j j d ƒ |  j j d™ |  j  ƒ |  j j d ƒ |  j j dš |  j  ƒ |  j j d ƒ |  j j d› |  j  ƒ |  j j dœ |  j  ƒ |  j j d |  j  ƒ |  j j d ƒ |  j j dž |  j  ƒ |  j j dŸ |  j  ƒ |  j j d  |  j  ƒ |  j j d ƒ n  d  S(¢   Ns   
sO   /* ------------------------------------------------------------------------ */
s   /* Declarations for %s */
s#   #define %sTYPE_%s (%s_get_type ())
sB   #define %s%s(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_%s, %s))
sA   #define %sIS_%s(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_%s))
sT   #define %s%s_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), %sTYPE_%s, %sIface))
s   struct _%s;
s   typedef struct _%s %s;
s!   typedef struct _%sIface %sIface;
s   struct _%sIface
s   {
s     GTypeInterface parent_iface;
i    s   org.gtk.GDBus.C.UnixFDs
   _method_%ss     gboolean (*handle_%s) (
s       %s *object,
s%       GDBusMethodInvocation *invocations   ,
    GUnixFDList *fd_lists   ,
    %sarg_%ss   );

s
   _signal_%ss     void (*%s) (
s       %s *objects   _prop_get_%ss     %s (*get_%s) (%s *object);

t   keys   %ss   };
s'   GType %s_get_type (void) G_GNUC_CONST;
s.   GDBusInterfaceInfo *%s_interface_info (void);
sM   guint %s_override_properties (GObjectClass *klass, guint property_id_begin);
s.   /* D-Bus method call completion functions: */
s   G_GNUC_DEPRECATED sK   void %s_complete_%s (
    %s *object,
    GDBusMethodInvocation *invocations
   ,
    %s%ss   );
s(   /* D-Bus signal emissions functions: */
s    void %s_emit_%s (
    %s *objects   /* D-Bus method calls: */
s   void %s_call_%s (
    %s *proxys\   ,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);
s*   gboolean %s_call_%s_finish (
    %s *proxys   ,
    %sout_%ss   ,
    GUnixFDList **out_fd_lists.   ,
    GAsyncResult *res,
    GError **error);
s(   gboolean %s_call_%s_sync (
    %s *proxys   ,
    GUnixFDList  *fd_lists6   ,
    GCancellable *cancellable,
    GError **error);
s    /* D-Bus property accessors: */
s   %s%s_get_%s (%s *object);
s   %s%s_dup_%s (%s *object);
s&   void %s_set_%s (%s *object, %svalue);
s   /* ---- */
s/   #define %sTYPE_%s_PROXY (%s_proxy_get_type ())
sS   #define %s%s_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_%s_PROXY, %sProxy))
s[   #define %s%s_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_%s_PROXY, %sProxyClass))
sa   #define %s%s_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_%s_PROXY, %sProxyClass))
sM   #define %sIS_%s_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_%s_PROXY))
sP   #define %sIS_%s_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_%s_PROXY))
s!   typedef struct _%sProxy %sProxy;
s+   typedef struct _%sProxyClass %sProxyClass;
s/   typedef struct _%sProxyPrivate %sProxyPrivate;
s   struct _%sProxy
s     /*< private >*/
s     GDBusProxy parent_instance;
s     %sProxyPrivate *priv;
s   struct _%sProxyClass
s      GDBusProxyClass parent_class;
s-   GType %s_proxy_get_type (void) G_GNUC_CONST;
s  void %s_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
sY   %s *%s_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
sé   %s *%s_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);
s  void %s_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
sa   %s *%s_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
sï   %s *%s_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);
s5   #define %sTYPE_%s_SKELETON (%s_skeleton_get_type ())
s\   #define %s%s_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_%s_SKELETON, %sSkeleton))
sd   #define %s%s_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_%s_SKELETON, %sSkeletonClass))
sj   #define %s%s_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_%s_SKELETON, %sSkeletonClass))
sS   #define %sIS_%s_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_%s_SKELETON))
sV   #define %sIS_%s_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_%s_SKELETON))
s'   typedef struct _%sSkeleton %sSkeleton;
s1   typedef struct _%sSkeletonClass %sSkeletonClass;
s5   typedef struct _%sSkeletonPrivate %sSkeletonPrivate;
s   struct _%sSkeleton
s*     GDBusInterfaceSkeleton parent_instance;
s     %sSkeletonPrivate *priv;
s   struct _%sSkeletonClass
s,     GDBusInterfaceSkeletonClass parent_class;
s0   GType %s_skeleton_get_type (void) G_GNUC_CONST;
s   %s *%s_skeleton_new (void);
s-   #define %sTYPE_OBJECT (%sobject_get_type ())
sP   #define %sOBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT, %sObject))
sI   #define %sIS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT))
s]   #define %sOBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), %sTYPE_OBJECT, %sObject))
s   struct _%sObject;
s#   typedef struct _%sObject %sObject;
s-   typedef struct _%sObjectIface %sObjectIface;
s   struct _%sObjectIface
s%   {
  GTypeInterface parent_iface;
};

s.   GType %sobject_get_type (void) G_GNUC_CONST;

s(   %s *%sobject_get_%s (%sObject *object);
s)   %s *%sobject_peek_%s (%sObject *object);
s9   #define %sTYPE_OBJECT_PROXY (%sobject_proxy_get_type ())
sa   #define %sOBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT_PROXY, %sObjectProxy))
si   #define %sOBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_OBJECT_PROXY, %sObjectProxyClass))
so   #define %sOBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_OBJECT_PROXY, %sObjectProxyClass))
sU   #define %sIS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT_PROXY))
sX   #define %sIS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_OBJECT_PROXY))
s-   typedef struct _%sObjectProxy %sObjectProxy;
s7   typedef struct _%sObjectProxyClass %sObjectProxyClass;
s;   typedef struct _%sObjectProxyPrivate %sObjectProxyPrivate;
s   struct _%sObjectProxy
s$     GDBusObjectProxy parent_instance;
s     %sObjectProxyPrivate *priv;
s   struct _%sObjectProxyClass
s&     GDBusObjectProxyClass parent_class;
s3   GType %sobject_proxy_get_type (void) G_GNUC_CONST;
s[   %sObjectProxy *%sobject_proxy_new (GDBusConnection *connection, const gchar *object_path);
s?   #define %sTYPE_OBJECT_SKELETON (%sobject_skeleton_get_type ())
sj   #define %sOBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT_SKELETON, %sObjectSkeleton))
sr   #define %sOBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_OBJECT_SKELETON, %sObjectSkeletonClass))
sx   #define %sOBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_OBJECT_SKELETON, %sObjectSkeletonClass))
s[   #define %sIS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT_SKELETON))
s^   #define %sIS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_OBJECT_SKELETON))
s3   typedef struct _%sObjectSkeleton %sObjectSkeleton;
s=   typedef struct _%sObjectSkeletonClass %sObjectSkeletonClass;
sA   typedef struct _%sObjectSkeletonPrivate %sObjectSkeletonPrivate;
s   struct _%sObjectSkeleton
s'     GDBusObjectSkeleton parent_instance;
s!     %sObjectSkeletonPrivate *priv;
s   struct _%sObjectSkeletonClass
s)     GDBusObjectSkeletonClass parent_class;
s6   GType %sobject_skeleton_get_type (void) G_GNUC_CONST;
sD   %sObjectSkeleton *%sobject_skeleton_new (const gchar *object_path);
sJ   void %sobject_skeleton_set_%s (%sObjectSkeleton *object, %s *interface_);
sK   #define %sTYPE_OBJECT_MANAGER_CLIENT (%sobject_manager_client_get_type ())
s{   #define %sOBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT_MANAGER_CLIENT, %sObjectManagerClient))
sƒ   #define %sOBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_OBJECT_MANAGER_CLIENT, %sObjectManagerClientClass))
s‰   #define %sOBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_OBJECT_MANAGER_CLIENT, %sObjectManagerClientClass))
sg   #define %sIS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT_MANAGER_CLIENT))
sj   #define %sIS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_OBJECT_MANAGER_CLIENT))
s=   typedef struct _%sObjectManagerClient %sObjectManagerClient;
sG   typedef struct _%sObjectManagerClientClass %sObjectManagerClientClass;
sK   typedef struct _%sObjectManagerClientPrivate %sObjectManagerClientPrivate;
s   struct _%sObjectManagerClient
s,     GDBusObjectManagerClient parent_instance;
s&     %sObjectManagerClientPrivate *priv;
s#   struct _%sObjectManagerClientClass
s.     GDBusObjectManagerClientClass parent_class;
s<   GType %sobject_manager_client_get_type (void) G_GNUC_CONST;
s   GType %sobject_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);
s7  void %sobject_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
sx   GDBusObjectManager *%sobject_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error);
s!  GDBusObjectManager *%sobject_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);
s=  void %sobject_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data);
s€   GDBusObjectManager *%sobject_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
s'  GDBusObjectManager *%sobject_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error);
(    (#   R   R   R   R   R   t
   name_uppert
   name_lowert
   camel_nameR   t   methodst   FalseR   t   lookup_annotationt   annotationst   Truet   sincet   in_argst   ctype_int   signalst   argst
   propertiest   argt   sortedt   keyst   version_cmp_keyt
   deprecatedt   out_argst	   ctype_outt	   free_funct   Nonet   ctype_in_dupR
   R   R   R   (
   R   t   it   function_pointerst   mt   unix_fdR   t   valuet   at   st   p(    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   declare_typesë   sÔ   &2,2  	

"		$	$		$	$	$$	/	2	/&222,,   						&222,,   	 	 & &  	*	* &&&       &&&     	* &&&     c         C   s   |  j  j d |  j ƒ d  S(   Ns"   
G_END_DECLS

#endif /* __%s__ */
(   R   R   R   (   R   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_outroË  s    c         C   sK  | d  k r d  Sd } x¨ | D]  } | j j d ƒ r; q n  |  j j d | | | j | j f ƒ t | j ƒ d k r‰ |  j j d ƒ n |  j j d | | f ƒ |  j j d ƒ | d 7} q W| d k rG|  j j d | ƒ d } xJ | D]B } | j j d ƒ rqî n  |  j j d	 | | f ƒ | d 7} qî W|  j j d
 ƒ n  | S(   Ni    s   org.gtk.GDBussU   static const GDBusAnnotationInfo %s_%d =
{
  -1,
  (gchar *) "%s",
  (gchar *) "%s",
s     NULL
s+     (GDBusAnnotationInfo **) &%s_%d_pointers
s   };

i   s;   static const GDBusAnnotationInfo * const %s_pointers[] =
{
s
     &%s_%d,
s     NULL
};

(   R6   R   t
   startswithR   R   R<   R   R&   (   R   t   prefixR&   t   nR=   R:   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_annotationsÓ  s0    c         C   s[  xí | D]å } |  j  d | | j f | j ƒ } |  j j d | | j | j | j f ƒ | d k rw |  j j d ƒ n |  j j d | | j f ƒ |  j j d ƒ t j | j d ƒ sÌ |  j j d ƒ n |  j j d	 ƒ |  j j d
 ƒ q Wt | ƒ d k rW|  j j d | ƒ x+ | D]# } |  j j d | | j f ƒ qW|  j j d ƒ n  d  S(   Ns   %s_arg_%s_annotation_infosa   static const _ExtendedGDBusArgInfo %s_%s =
{
  {
    -1,
    (gchar *) "%s",
    (gchar *) "%s",
i    s	       NULL
sA       (GDBusAnnotationInfo **) &%s_arg_%s_annotation_info_pointers
s     },
s   org.gtk.GDBus.C.ForceGVariants     FALSE
s     TRUE
s   };

s=   static const _ExtendedGDBusArgInfo * const %s_pointers[] =
{
s
     &%s_%s,
s     NULL
};

(	   RE   R   R&   R   R   t	   signatureR   R%   R   (   R   RC   R,   R=   t   num_anno(    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_argsú  s$    "!c         C   s%  |  j  j d | j ƒ t | j ƒ d k r[xÎ| j D]Ã} t } t j | j d ƒ r` t	 } n  |  j
 d | j | j f | j ƒ |  j
 d | j | j f | j ƒ |  j d | j | j f | j ƒ } |  j  j d | j | j | j f ƒ t | j ƒ d k r|  j  j d ƒ n  |  j  j d	 | j | j f ƒ t | j ƒ d k ra|  j  j d ƒ n  |  j  j d
 | j | j f ƒ | d k r |  j  j d ƒ n  |  j  j d | j | j f ƒ |  j  j d | j | rÞd n d f ƒ |  j  j d ƒ q6 W|  j  j d | j ƒ x1 | j D]& } |  j  j d | j | j f ƒ qW|  j  j d ƒ n  t | j ƒ d k rþx-| j D]"} |  j
 d | j | j f | j ƒ |  j d | j | j f | j ƒ } |  j  j d | j | j | j f ƒ t | j ƒ d k r|  j  j d ƒ n  |  j  j d | j | j f ƒ | d k rU|  j  j d ƒ n  |  j  j d | j | j f ƒ |  j  j d | j ƒ |  j  j d ƒ qzW|  j  j d | j ƒ x1 | j D]& } |  j  j d | j | j f ƒ qÁW|  j  j d ƒ n  t | j ƒ d k r¿xK| j D]@} | j r>| j r>d } n* | j rPd } n | j rbd } n d } |  j d  | j | j f | j ƒ } |  j  j d! | j | j | j | j j | f ƒ | d k rÞ|  j  j d ƒ n  |  j  j d" | j | j f ƒ |  j  j d# | j ƒ t j | j d$ ƒ s=|  j  j d% ƒ n |  j  j d& ƒ |  j  j d ƒ qW|  j  j d' | j ƒ x1 | j D]& } |  j  j d( | j | j f ƒ q‚W|  j  j d ƒ n  |  j d) | j | j ƒ } |  j  j d* | j | j f ƒ t | j ƒ d k r#|  j  j d ƒ n |  j  j d+ | j ƒ t | j ƒ d k rb|  j  j d ƒ n |  j  j d, | j ƒ t | j ƒ d k r¡|  j  j d ƒ n |  j  j d- | j ƒ | d k r×|  j  j d ƒ n |  j  j d. | j ƒ |  j  j d/ | j ƒ |  j  j d0 ƒ |  j  j |  j j d1 | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d2 | j | j f ƒ |  j  j |  j j d3 | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d4 | j ƒ x( | j D] } |  j  j d5 | j ƒ qàW|  j  j d6 ƒ |  j  j d0 ƒ d  S(7   Ns+   /* ---- Introspection data for %s ---- */

i    s   org.gtk.GDBus.C.UnixFDs   _%s_method_info_%s_IN_ARGs   _%s_method_info_%s_OUT_ARGs   _%s_method_%s_annotation_infos]   static const _ExtendedGDBusMethodInfo _%s_method_info_%s =
{
  {
    -1,
    (gchar *) "%s",
s
       NULL,
s;       (GDBusArgInfo **) &_%s_method_info_%s_IN_ARG_pointers,
s<       (GDBusArgInfo **) &_%s_method_info_%s_OUT_ARG_pointers,
s	       NULL
sE       (GDBusAnnotationInfo **) &_%s_method_%s_annotation_info_pointers
s     },
  "handle-%s",
  %s
t   TRUEt   FALSEs   };

sM   static const _ExtendedGDBusMethodInfo * const _%s_method_info_pointers[] =
{
s     &_%s_method_info_%s,
s     NULL
};

s   _%s_signal_info_%s_ARGs   _%s_signal_%s_annotation_infos]   static const _ExtendedGDBusSignalInfo _%s_signal_info_%s =
{
  {
    -1,
    (gchar *) "%s",
s8       (GDBusArgInfo **) &_%s_signal_info_%s_ARG_pointers,
sE       (GDBusAnnotationInfo **) &_%s_signal_%s_annotation_info_pointers
s     },
  "%s"
sM   static const _ExtendedGDBusSignalInfo * const _%s_signal_info_pointers[] =
{
s     &_%s_signal_info_%s,
sI   G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLEt#   G_DBUS_PROPERTY_INFO_FLAGS_READABLEt#   G_DBUS_PROPERTY_INFO_FLAGS_WRITABLEt   G_DBUS_PROPERTY_INFO_FLAGS_NONEs   _%s_property_%s_annotation_infos}   static const _ExtendedGDBusPropertyInfo _%s_property_info_%s =
{
  {
    -1,
    (gchar *) "%s",
    (gchar *) "%s",
    %s,
sG       (GDBusAnnotationInfo **) &_%s_property_%s_annotation_info_pointers
s     },
  "%s",
s   org.gtk.GDBus.C.ForceGVariants     FALSE
s     TRUE
sQ   static const _ExtendedGDBusPropertyInfo * const _%s_property_info_pointers[] =
{
s     &_%s_property_info_%s,
s   _%s_annotation_infos`   static const _ExtendedGDBusInterfaceInfo _%s_interface_info =
{
  {
    -1,
    (gchar *) "%s",
s4       (GDBusMethodInfo **) &_%s_method_info_pointers,
s4       (GDBusSignalInfo **) &_%s_signal_info_pointers,
s8       (GDBusPropertyInfo **) &_%s_property_info_pointers,
s;       (GDBusAnnotationInfo **) &_%s_annotation_info_pointers
s     },
  "%s",
};

s   
s¤   /**
 * %s_interface_info:
 *
 * Gets a machine-readable description of the #%s D-Bus interface.
 *
 * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
sv   GDBusInterfaceInfo *
%s_interface_info (void)
{
  return (GDBusInterfaceInfo *) &_%s_interface_info.parent_struct;
}

so  /**
 * %s_override_properties:
 * @klass: The class structure for a #GObject<!-- -->-derived class.
 * @property_id_begin: The property id to assign to the first overridden property.
 *
 * Overrides all #GObject properties in the #%s interface for a concrete class.
 * The properties are overridden in the order they are defined.
 *
 * Returns: The last property id.
sN   guint
%s_override_properties (GObjectClass *klass, guint property_id_begin)
{
sG     g_object_class_override_property (klass, property_id_begin++, "%s");
s#     return property_id_begin - 1;
}

(   R   R   R   R   R#   R$   R   R%   R&   R'   RH   R!   R)   R3   RE   t   name_hyphenR+   R,   R-   t   readablet   writableR.   RF   R	   t   expandt+   write_gtkdoc_deprecated_and_since_and_closeR"   (   R   R8   R:   R;   RG   R>   R?   t   access(    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt$   generate_introspection_for_interface  sÚ    	##%   $#%  $					%& $	c      	   C   s¥
  |  j  j d ƒ |  j  j |  j j d | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d ƒ |  j  j |  j j d | j t ƒ ƒ i  } t | j	 ƒ d k rx[ | j	 D]M } | j
 d | j f } d | j } | d | j | j f 7} | | | <q° Wn  t | j ƒ d k rwx[ | j D]M } | j
 d | j f } d	 | j } | d
 | j | j f 7} | | | <q#Wn  t | j ƒ d k rêx[ | j D]M } | j
 d | j f } d | j } | d | j | j f 7} | | | <q–Wn  x; t | j ƒ  d t j ƒD] } |  j  j d | | ƒ qW|  j  j |  j j d | j t ƒ ƒ |  j | |  j  d ƒ |  j  j d ƒ |  j  j d | j | j f ƒ |  j  j d | j | j f ƒ |  j  j d ƒ |  j  j d | j | j f ƒ t | j	 ƒ d k r½|  j  j d ƒ x±| j	 D]£} t } t j | j d ƒ r=t } n  |  j  j |  j j d | j | j | j f t ƒ ƒ | r‹|  j  j d ƒ n  x( | j D] }	 |  j  j d |	 j ƒ q•W|  j  j |  j j d | j | j | j | j f t ƒ ƒ |  j | |  j  d ƒ | rd }
 n d }
 |  j  j d | j | j | j t | j ƒ |
 f ƒ | rk|  j  j d ƒ n  x( | j D] }	 |  j  j d |	 j ƒ quW|  j  j d ƒ |  j  j d ƒ qWn  t | j ƒ d k r|  j  j d  ƒ x6| j D](} |  j  j |  j j d! | j | j | j f t ƒ ƒ x( | j D] }	 |  j  j d" |	 j ƒ q1W|  j  j |  j j d# | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d$ | j | j | j t | j ƒ f ƒ x( | j D] }	 |  j  j d |	 j ƒ qÓW|  j  j d ƒ |  j  j d ƒ qìWn  t | j ƒ d k r‘
|  j  j d% ƒ xN| j D]@} | j rk| j rkd& } n7 | j r}d' } n% | j rd( } n t d) | j ƒ ‚ |  j  j |  j j d* | j | j | j | j | f t ƒ ƒ |  j | |  j  d ƒ |  j  j d+ ƒ | j j d, k r@d- | j | j | j | j j f } n&| j j d. k rqd/ | j | j | j f } nõ| j j d0 k r¢d1 | j | j | j f } nÄ| j j d2 k rÓd3 | j | j | j f } n“| j j d4 k rd5 | j | j | j f } nb| j j d6 k r5d7 | j | j | j f } n1| j j d8 k rfd9 | j | j | j f } n | j j d: k r—d; | j | j | j f } nÏ| j j d< k rÈd= | j | j | j f } nž| j j d> k rùd? | j | j | j f } nm| j j d@ k r*	dA | j | j | j f } n<| j j dB k r[	dA | j | j | j f } n| j j dC k rŒ	dA | j | j | j f } nÚ | j j dD k r½	dA | j | j | j f } n© | j j dE k rî	dF | j | j | j f } nx | j j dG k r
dF | j | j | j f } nG | j j dH k rP
dF | j | j | j f } n t dI | j j ƒ ‚ |  j  j dJ | ƒ |  j  j d ƒ qJWn  |  j  j dK ƒ d  S(L   Ns   
sF   /**
 * %s:
 *
 * Abstract interface type for the D-Bus interface #%s.
i    s8   /**
 * %sIface:
 * @parent_iface: The parent interface.
s
   _method_%ss   @handle_%s: s&   Handler for the #%s::handle-%s signal.s
   _signal_%ss   @%s: s   Handler for the #%s::%s signal.s   _prop_get_%ss	   @get_%s: s   Getter for the #%s:%s property.R   s    * %s
s1    *
 * Virtual table for the D-Bus interface #%s.
s   typedef %sIface %sInterface;
s,   G_DEFINE_INTERFACE (%s, %s, G_TYPE_OBJECT);
s/   static void
%s_default_init (%sIface *iface)
{
s9     /* GObject signals for incoming D-Bus method calls: */
s   org.gtk.GDBus.C.UnixFDs[     /**
   * %s::handle-%s:
   * @object: A #%s.
   * @invocation: A #GDBusMethodInvocation.
s6      * @fd_list: (allow-none): A #GUnixFDList or %NULL.
s0      * @arg_%s: Argument passed by remote caller.
s'     *
   * Signal emitted when a remote caller is invoking the %s.%s() D-Bus method.
   *
   * If a signal handler returns %%TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call %s_complete_%s() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %%TRUE if the invocation was handled, %%FALSE to let other signal handlers run.
i   i   s    g_signal_new ("handle-%s",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (%sIface, handle_%s),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    %d,
    G_TYPE_DBUS_METHOD_INVOCATIONs   , G_TYPE_UNIX_FD_LISTs   , %ss   );
s4     /* GObject signals for received D-Bus signals: */
s(     /**
   * %s::%s:
   * @object: A #%s.
s      * @arg_%s: Argument.
sç      *
   * On the client-side, this signal is emitted whenever the D-Bus signal #%s::%s is received.
   *
   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
s¾     g_signal_new ("%s",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (%sIface, %s),
    NULL,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_NONE,
    %ds1     /* GObject properties for D-Bus properties: */
s®   Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.sÜ   Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.sÜ   Since the D-Bus property for this #GObject property is writable but not readable, it is meaningful to write to it on both the client- and service-side. It is only meaningful, however, to read from it on the service-side.s<   Cannot handle property %s that neither readable nor writablesO     /**
   * %s:%s:
   *
   * Represents the D-Bus property #%s:%s.
   *
   * %s
s.     g_object_interface_install_property (iface,
t   G_TYPE_VARIANTsC   g_param_spec_variant ("%s", "%s", "%s", G_VARIANT_TYPE ("%s"), NULLt   bs-   g_param_spec_boolean ("%s", "%s", "%s", FALSEt   ys/   g_param_spec_uchar ("%s", "%s", "%s", 0, 255, 0RD   s=   g_param_spec_int ("%s", "%s", "%s", G_MININT16, G_MAXINT16, 0t   qs6   g_param_spec_uint ("%s", "%s", "%s", 0, G_MAXUINT16, 0R8   s=   g_param_spec_int ("%s", "%s", "%s", G_MININT32, G_MAXINT32, 0t   us6   g_param_spec_uint ("%s", "%s", "%s", 0, G_MAXUINT32, 0t   xs?   g_param_spec_int64 ("%s", "%s", "%s", G_MININT64, G_MAXINT64, 0t   ts8   g_param_spec_uint64 ("%s", "%s", "%s", 0, G_MAXUINT64, 0t   dsE   g_param_spec_double ("%s", "%s", "%s", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0R>   s+   g_param_spec_string ("%s", "%s", "%s", NULLt   ot   gt   ayt   ass1   g_param_spec_boxed ("%s", "%s", "%s", G_TYPE_STRVt   aot   aays#   Unsupported gtype %s for GParamSpecs5       %s, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));s   }

(   R   R   R	   RQ   R"   R   R$   RR   R   R#   R(   R!   RN   R+   R-   R/   R0   R   R1   R%   R&   R'   R)   t   gtypeR,   RO   RP   t   RuntimeErrorR.   RF   (   R   R8   t   doc_bitsR:   R   R<   R>   R?   R;   R=   t
   extra_argst   hint(    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_interface×  s   "  	 &	
* 	&					)(c         C   s‡  x€| j  D]u} | j r+ | j r+ d } n7 | j r= d } n% | j rO d } n t d | j ƒ ‚ |  j j |  j j d | j	 | j	 | j
 | j | j | f t ƒ ƒ | j j d  k rÛ |  j j d | j	 | j	 f ƒ n |  j j d ƒ |  j | |  j d ƒ |  j j d	 | j j | j	 | j	 | j
 f ƒ |  j j d
 | j | j | j	 f ƒ |  j j d ƒ |  j j d ƒ | j j d  k rm|  j j |  j j d | j	 | j	 | j
 | j | j | | j j f t ƒ ƒ |  j | |  j d ƒ |  j j d | j j | j	 | j	 | j
 | j j f ƒ |  j j d | j ƒ |  j j d ƒ |  j j d ƒ |  j j d ƒ n  | j rˆ| j rˆd } n7 | j ršd } n% | j r¬d } n t d | j ƒ ‚ |  j j |  j j d | j	 | j	 | j
 | j | j | f t ƒ ƒ |  j | |  j d ƒ |  j j d | j	 | j	 | j
 | j j f ƒ |  j j d | j ƒ |  j j d ƒ |  j j d ƒ q
 Wd  S(   Ns„   Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.sr   Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.sj   Since this D-Bus property is not readable, it is only meaningful to use this function on the service-side.s<   Cannot handle property %s that neither readable nor writablesk   /**
 * %s_get_%s: (skip)
 * @object: A #%s.
 *
 * Gets the value of the #%s:%s D-Bus property.
 *
 * %s
 *
sp   * <warning>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use %s_dup_%s() if on another thread.</warning>
 *
 * Returns: (transfer none): The property value or %%NULL if the property is not set. Do not free the returned value, it belongs to @object.
s     * Returns: The property value.
i    s   %s
%s_get_%s (%s *object)
{
s3     return %s%s_GET_IFACE (object)->get_%s (object);
s   }
s   
sì   /**
 * %s_dup_%s: (skip)
 * @object: A #%s.
 *
 * Gets a copy of the #%s:%s D-Bus property.
 *
 * %s
 *
 * Returns: (transfer full): The property value or %%NULL if the property is not set. The returned value should be freed with %s().
s'   %s
%s_dup_%s (%s *object)
{
  %svalue;
s8     g_object_get (G_OBJECT (object), "%s", &value, NULL);
s     return value;
sj   Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.sr   Since this D-Bus property is writable, it is meaningful to use this function on both the client- and service-side.s‚   /**
 * %s_set_%s: (skip)
 * @object: A #%s.
 * @value: The value to set.
 *
 * Sets the #%s:%s D-Bus property to @value.
 *
 * %s
s'   void
%s_set_%s (%s *object, %svalue)
{
s7     g_object_set (G_OBJECT (object), "%s", value, NULL);
(   R-   RO   RP   Rd   R   R   R   R	   RQ   R!   R"   R$   R.   R5   R6   RR   R*   R   R    R7   RN   (   R   R8   R?   Rg   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_property_accessorsž  s`    					/#&	8,					/#c         C   sy  xr| j  D]g} |  j j |  j j d | j | j | j f t ƒ ƒ x( | j D] } |  j j d | j	 ƒ qO W|  j j |  j j d | j	 | j	 f t ƒ ƒ |  j
 | |  j d ƒ |  j j d | j | j | j f ƒ x1 | j D]& } |  j j d | j | j	 f ƒ qå W|  j j d | j ƒ x( | j D] } |  j j d | j	 ƒ q0W|  j j d	 ƒ |  j j d
 ƒ q
 Wd  S(   Ns&   /**
 * %s_emit_%s:
 * @object: A #%s.
s.    * @arg_%s: Argument to pass with the signal.
s&    *
 * Emits the #%s::%s D-Bus signal.
i    s    void
%s_emit_%s (
    %s *objects   ,
    %sarg_%ss)   )
{
  g_signal_emit_by_name (object, "%s"s   , arg_%ss   );
s   }

(   R+   R   R   R	   RQ   R!   R"   R$   R,   R   RR   R*   RN   (   R   R8   R>   R=   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_signal_emittersõ  s(     $c      
   C   sÆ  x¿| j  D]´} t } t j | j d ƒ r4 t } n  |  j j d | j | j | j	 f ƒ x( | j
 D] } |  j j d | j ƒ qd W| rž |  j j d ƒ n  |  j j |  j j d | j | j | j | j | j | j f t ƒ ƒ |  j | |  j d ƒ |  j j d | j | j | j	 f ƒ x1 | j
 D]& } |  j j d | j | j f ƒ q+W| rn|  j j d	 ƒ n  |  j j d
 ƒ | r—|  j j d ƒ n |  j j d ƒ |  j j d | j ƒ x( | j
 D] } |  j j d | j ƒ qÈW|  j j d ƒ x( | j
 D] } |  j j d | j ƒ qW|  j j d ƒ | rM|  j j d ƒ n  |  j j d ƒ |  j j d ƒ |  j j d | j | j | j	 f ƒ x( | j D] } |  j j d | j ƒ qW| r×|  j j d ƒ n  |  j j |  j j d | j | j | j | j f t ƒ ƒ |  j | |  j d ƒ |  j j d | j | j | j	 f ƒ x1 | j D]& } |  j j d | j | j f ƒ qXW| r›|  j j d ƒ n  |  j j d ƒ | rÄ|  j j d ƒ n |  j j d ƒ |  j j d ƒ |  j j d  ƒ x( | j D] } |  j j d | j ƒ qþW|  j j d ƒ x( | j D] } |  j j d! | j ƒ q9W|  j j d" ƒ |  j j d# ƒ |  j j d$ | j | j | j	 f ƒ x( | j
 D] } |  j j d | j ƒ qªW| rä|  j j d ƒ n  x( | j D] } |  j j d | j ƒ qîW| r(|  j j d ƒ n  |  j j |  j j d% | j | j | j | j f t ƒ ƒ |  j | |  j d ƒ |  j j d& | j | j | j	 f ƒ x1 | j
 D]& } |  j j d | j | j f ƒ q©W| rì|  j j d' ƒ n  x1 | j D]& } |  j j d | j | j f ƒ qöW| r9|  j j d ƒ n  |  j j d( ƒ | rb|  j j d) ƒ n |  j j d* ƒ |  j j d | j ƒ x( | j
 D] } |  j j d | j ƒ q“W|  j j d ƒ x( | j
 D] } |  j j d | j ƒ qÎW|  j j d ƒ | r|  j j d+ ƒ n  |  j j d, ƒ |  j j d  ƒ x( | j D] } |  j j d | j ƒ qBW|  j j d ƒ x( | j D] } |  j j d! | j ƒ q}W|  j j d" ƒ |  j j d# ƒ q
 Wd  S(-   Ns   org.gtk.GDBus.C.UnixFDs*   /**
 * %s_call_%s:
 * @proxy: A #%sProxy.
s9    * @arg_%s: Argument to pass with the method invocation.
s4    * @fd_list: (allow-none): A #GUnixFDList or %NULL.
sf   * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %%NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the %s.%s() D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call %s_call_%s_finish() to get the result of the operation.
 *
 * See %s_call_%s_sync() for the synchronous, blocking version of this method.
i    s   void
%s_call_%s (
    %s *proxys   ,
    %sarg_%ss   ,
    GUnixFDList *fd_lists]   ,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
s=     g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
s+     g_dbus_proxy_call (G_DBUS_PROXY (proxy),
s       "%s",
    g_variant_new ("(s   %ss   )"s   ,
                   arg_%ss'   ),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
s       fd_list,
s/       cancellable,
    callback,
    user_data);
s   }

s1   /**
 * %s_call_%s_finish:
 * @proxy: A #%sProxy.
sM    * @out_%s: (out): Return location for return parameter or %%NULL to ignore.
sE    * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
s   * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_call_%s().
 * @error: Return location for error or %%NULL.
 *
 * Finishes an operation started with %s_call_%s().
 *
 * Returns: (skip): %%TRUE if the call succeded, %%FALSE if @error is set.
s*   gboolean
%s_call_%s_finish (
    %s *proxys   ,
    %sout_%ss   ,
    GUnixFDList **out_fd_listsA   ,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
se     _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
sF     _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
s#     if (_ret == NULL)
    goto _out;
s*     g_variant_get (_ret,
                 "(s   ,
                 out_%ss   );
  g_variant_unref (_ret);
s    _out:
  return _ret != NULL;
}

s/   /**
 * %s_call_%s_sync:
 * @proxy: A #%sProxy.
su   * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @error: Return location for error or %%NULL.
 *
 * Synchronously invokes the %s.%s() D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See %s_call_%s() for the asynchronous version of this method.
 *
 * Returns: (skip): %%TRUE if the call succeded, %%FALSE if @error is set.
s(   gboolean
%s_call_%s_sync (
    %s *proxys   ,
    GUnixFDList  *fd_listsI   ,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
sI     _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
s7     _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
s       fd_list,
    out_fd_list,
s@       cancellable,
    error);
  if (_ret == NULL)
    goto _out;
(   R#   R$   R   R%   R&   R'   R   R   R!   R"   R)   R   R	   RQ   RR   R*   t	   format_inR3   R4   t
   format_out(   R   R8   R:   R;   R=   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_method_calls  sà    		2$&$&$$c         C   s6  x/| j  D]$} t } t j | j d ƒ r4 t } n  |  j j d | j | j | j	 f ƒ | rs |  j j d ƒ n  x( | j
 D] } |  j j d | j ƒ q} W|  j j |  j j d | j | j f t ƒ ƒ |  j | |  j d ƒ |  j j d | j | j | j	 f ƒ | r"|  j j d ƒ n  x1 | j
 D]& } |  j j d	 | j | j f ƒ q,W|  j j d
 ƒ | r|  j j d ƒ n |  j j d ƒ x( | j
 D] } |  j j d | j ƒ q™W|  j j d ƒ x( | j
 D] } |  j j d | j ƒ qÔW| r|  j j d ƒ n |  j j d ƒ |  j j d ƒ q
 Wd  S(   Ns   org.gtk.GDBus.C.UnixFDse   /**
 * %s_complete_%s:
 * @object: A #%s.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
s4    * @fd_list: (allow-none): A #GUnixFDList or %NULL.
s    * @%s: Parameter to return.
s=   *
 * Helper function used in service implementations to finish handling invocations of the %s.%s() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
i    sK   void
%s_complete_%s (
    %s *object,
    GDBusMethodInvocation *invocations   ,
    GUnixFDList *fd_lists
   ,
    %s%ss   )
{
s\     g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
    g_variant_new ("(sJ     g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("(s   %ss   )"s   ,
                   %ss   ),
    fd_list);
s   ));
s   }

(   R#   R$   R   R%   R&   R'   R   R   R!   R"   R3   R   R	   RQ   RR   R*   Rk   (   R   R8   R:   R;   R=   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_method_completersÎ  sB    	$c         C   sé
  |  j  j d ƒ |  j  j |  j j d | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d ƒ |  j  j |  j j d | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d ƒ |  j  j d | j ƒ |  j  j d | j | j f ƒ |  j  j d ƒ |  j  j d	 | j | j f ƒ |  j  j d
 | j ƒ |  j  j d | j | j	 | j f ƒ |  j  j d ƒ |  j  j d	 | j | j f ƒ |  j  j d | j | j	 | j f ƒ |  j  j d ƒ |  j  j d | j ƒ |  j  j d | j | j | j	 f ƒ |  j  j d ƒ |  j  j d | j ƒ |  j  j d | j ƒ t
 | j ƒ d k r}|  j  j d t
 | j ƒ | j f ƒ n  |  j  j d ƒ t
 | j ƒ d k rã|  j  j d | j ƒ |  j  j d | j ƒ |  j  j d ƒ n  |  j  j d | j ƒ t
 | j ƒ d k rD|  j  j d t
 | j ƒ | j | j | j f ƒ n  |  j  j d ƒ |  j  j d | j ƒ |  j  j d ƒ |  j  j d | j ƒ |  j  j d | j | j	 f ƒ |  j  j d ƒ |  j  j d | j | j	 f ƒ |  j  j d ƒ |  j  j d  ƒ |  j  j d ƒ |  j  j d! | j ƒ |  j  j d" | j | j | j	 | j | j f ƒ x7| j D],} d# } | j j d  k rŒd$ } n  |  j  j d% | j j | j | j | j | j | j | j	 | j j | f	 ƒ t } | j j d& k s| j j d' k s| j j d( k rt } n  | r>|  j  j d) | j ƒ n  |  j  j d* | j ƒ | j j d+ k rš|  j  j d, ƒ |  j  j d- ƒ |  j  j d. ƒ nÇ |  j  j d/ ƒ d0 } | j j d1 k sø| j j d& k sø| j j d2 k sø| j j d( k rd3 } n  |  j  j d4 | j j | f ƒ | rA|  j  j d5 | j ƒ n  |  j  j d6 ƒ |  j  j d7 ƒ |  j  j d8 ƒ |  j  j d9 ƒ |  j  j d ƒ qeW|  j  j d: | j | j | j | j | j	 | j | j f ƒ |  j  j d; | j | j | j | j | j | j | j f ƒ t
 | j ƒ d k r@|  j  j d< | j ƒ n  |  j  j d= | j ƒ |  j  j d ƒ |  j  j d> | j | j f ƒ x7 | j D], } |  j  j d? | j | j | j f ƒ q‘W|  j  j d ƒ |  j  j |  j j d@ | j | j | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j dA | j | j | j	 | j f ƒ |  j  j dB | j | j | j | j f ƒ |  j | |  j  d ƒ |  j  j dC | j | j | j | j	 f ƒ |  j  j |  j j dD | j | j | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j dE | j | j | j | j	 | j | j | j	 f ƒ |  j  j d ƒ |  j  j |  j j dF | j | j | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j dG | j | j | j	 | j f ƒ |  j  j dH | j | j | j | j f ƒ |  j | |  j  d ƒ |  j  j dI | j | j | j | j	 f ƒ |  j  j |  j j dJ | j | j | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j dK | j | j | j | j	 | j | j | j	 f ƒ |  j  j d ƒ d  S(L   NsP   /* ------------------------------------------------------------------------ */

s|   /**
 * %sProxy:
 *
 * The #%sProxy structure contains only private data and should only be accessed using the provided API.
i    s   
s]   /**
 * %sProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #%sProxy.
s-   struct _%sProxyPrivate
{
  GData *qdata;
};

s3   static void %s_proxy_iface_init (%sIface *iface);

s2   #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
s?   G_DEFINE_TYPE_WITH_CODE (%sProxy, %s_proxy, G_TYPE_DBUS_PROXY,
s1                            G_ADD_PRIVATE (%sProxy)
sS                            G_IMPLEMENT_INTERFACE (%sTYPE_%s, %s_proxy_iface_init));

s   #else
s   #endif
s2   static void
%s_proxy_finalize (GObject *object)
{
s(     %sProxy *proxy = %s%s_PROXY (object);
s*     g_datalist_clear (&proxy->priv->qdata);
s@     G_OBJECT_CLASS (%s_proxy_parent_class)->finalize (object);
}

s   static void
%s_proxy_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
sê    const _ExtendedGDBusPropertyInfo *info;
  GVariant *variant;
  g_assert (prop_id != 0 && prop_id - 1 < %d);
  info = _%s_property_info_pointers[prop_id - 1];
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
  if (info->use_gvariant)
    {
      g_value_set_variant (value, variant);
    }
  else
    {
      if (variant != NULL)
        g_dbus_gvariant_to_gvalue (variant, value);
    }
  if (variant != NULL)
    g_variant_unref (variant);
s   }

sk   static void
%s_proxy_set_property_cb (GDBusProxy *proxy,
  GAsyncResult *res,
  gpointer      user_data)
{
sÖ    const _ExtendedGDBusPropertyInfo *info = user_data;
  GError *error;
  GVariant *_ret;
  error = NULL;
  _ret = g_dbus_proxy_call_finish (proxy, res, &error);
  if (!_ret)
    {
      g_warning ("Error setting property '%%s' on interface %s: %%s (%%s, %%d)",
                 info->parent_struct.name, 
                 error->message, g_quark_to_string (error->domain), error->code);
      g_error_free (error);
    }
  else
    {
      g_variant_unref (_ret);
    }
s   static void
%s_proxy_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
sD    const _ExtendedGDBusPropertyInfo *info;
  GVariant *variant;
  g_assert (prop_id != 0 && prop_id - 1 < %d);
  info = _%s_property_info_pointers[prop_id - 1];
  variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
  g_dbus_proxy_call (G_DBUS_PROXY (object),
    "org.freedesktop.DBus.Properties.Set",
    g_variant_new ("(ssv)", "%s", info->parent_struct.name, variant),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    NULL, (GAsyncReadyCallback) %s_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
  g_variant_unref (variant);
s’   static void
%s_proxy_g_signal (GDBusProxy *proxy,
  const gchar *sender_name G_GNUC_UNUSED,
  const gchar *signal_name,
  GVariant *parameters)
{
sŽ     _ExtendedGDBusSignalInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint n;
  guint signal_id;
s³     info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, signal_name);
  if (info == NULL)
    return;
s°     num_params = g_variant_n_children (parameters);
  paramv = g_new0 (GValue, num_params + 1);
  g_value_init (&paramv[0], %sTYPE_%s);
  g_value_set_object (&paramv[0], proxy);
sñ    g_variant_iter_init (&iter, parameters);
  n = 1;
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
s>     signal_id = g_signal_lookup (info->signal_name, %sTYPE_%s);
s/     g_signal_emitv (paramv, signal_id, 0, NULL);
sZ     for (n = 0; n < num_params + 1; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
s   static void
%s_proxy_g_properties_changed (GDBusProxy *_proxy,
  GVariant *changed_properties,
  const gchar *const *invalidated_properties)
{
sÒ    %sProxy *proxy = %s%s_PROXY (_proxy);
  guint n;
  const gchar *key;
  GVariantIter *iter;
  _ExtendedGDBusPropertyInfo *info;
  g_variant_get (changed_properties, "a{sv}", &iter);
  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, key);
      g_datalist_remove_data (&proxy->priv->qdata, key);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
  g_variant_iter_free (iter);
  for (n = 0; invalidated_properties[n] != NULL; n++)
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, invalidated_properties[n]);
      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
}

t   0t   NULLsv   static %s
%s_proxy_get_%s (%s *object)
{
  %sProxy *proxy = %s%s_PROXY (object);
  GVariant *variant;
  %svalue = %s;
t   g_variant_get_strvt   g_variant_get_objpathvt   g_variant_get_bytestring_arraysb     value = g_datalist_get_data (&proxy->priv->qdata, "%s");
  if (value != NULL)
    return value;
sK     variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "%s");
RU   s     value = variant;
s     if (variant != NULL)
s       g_variant_unref (variant);
s     if (variant != NULL)
    {
R   t   g_variant_get_stringt   g_variant_get_objvs   , NULLs         value = %s (variant%s);
sV         g_datalist_set_data_full (&proxy->priv->qdata, "%s", (gpointer) value, g_free);
s!         g_variant_unref (variant);
s       }
s     return value;
s   }
sM  static void
%s_proxy_init (%sProxy *proxy)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  proxy->priv = %s_proxy_get_instance_private (proxy);
#else
  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, %sTYPE_%s_PROXY, %sProxyPrivate);
#endif

  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), %s_interface_info ());
}

sã  static void
%s_proxy_class_init (%sProxyClass *klass)
{
  GObjectClass *gobject_class;
  GDBusProxyClass *proxy_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize     = %s_proxy_finalize;
  gobject_class->get_property = %s_proxy_get_property;
  gobject_class->set_property = %s_proxy_set_property;

  proxy_class = G_DBUS_PROXY_CLASS (klass);
  proxy_class->g_signal = %s_proxy_g_signal;
  proxy_class->g_properties_changed = %s_proxy_g_properties_changed;

s.     %s_override_properties (gobject_class, 1);

su   #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (%sProxyPrivate));
#endif
s3   static void
%s_proxy_iface_init (%sIface *iface)
{
s#     iface->get_%s = %s_proxy_get_%s;
s˜  /**
 * %s_proxy_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates a proxy for the D-Bus interface #%s. See g_dbus_proxy_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call %s_proxy_new_finish() to get the result of the operation.
 *
 * See %s_proxy_new_sync() for the synchronous, blocking version of this constructor.
sò  void
%s_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (%sTYPE_%s_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "%s", NULL);
}

sH  /**
 * %s_proxy_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_proxy_new().
 * @error: Return location for error or %%NULL
 *
 * Finishes an operation started with %s_proxy_new().
 *
 * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.
sz  %s *
%s_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return %s%s (ret);
  else
    return NULL;
}

sÕ  /**
 * %s_proxy_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @error: Return location for error or %%NULL
 *
 * Synchronously creates a proxy for the D-Bus interface #%s. See g_dbus_proxy_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See %s_proxy_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.
sü  %s *
%s_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (%sTYPE_%s_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "%s", NULL);
  if (ret != NULL)
    return %s%s (ret);
  else
    return NULL;
}

sD  /**
 * %s_proxy_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like %s_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call %s_proxy_new_for_bus_finish() to get the result of the operation.
 *
 * See %s_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
sô  void
%s_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (%sTYPE_%s_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "%s", NULL);
}

s`  /**
 * %s_proxy_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_proxy_new_for_bus().
 * @error: Return location for error or %%NULL
 *
 * Finishes an operation started with %s_proxy_new_for_bus().
 *
 * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.
s‚  %s *
%s_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return %s%s (ret);
  else
    return NULL;
}

sz  /**
 * %s_proxy_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @error: Return location for error or %%NULL
 *
 * Like %s_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See %s_proxy_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.
sþ  %s *
%s_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (%sTYPE_%s_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "%s", NULL);
  if (ret != NULL)
    return %s%s (ret);
  else
    return NULL;
}

(   R   R   R	   RQ   R"   R$   RR   R!   R   R    R   R-   R   R.   R5   R6   R*   t   gvariant_getR'   Rc   (   R   R8   R?   t	   nul_valuet   free_containert	   extra_len(    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_proxy  s.    & &&)	6	H	 &*&   &2&   &2c         C   s¢  |  j  j d ƒ |  j  j |  j j d | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d ƒ |  j  j |  j j d | j | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d ƒ |  j  j d | j ƒ |  j  j d | j | j | j | j	 f ƒ |  j  j d d\ ƒ |  j  j d	 | j | j	 f ƒ |  j  j d
 ƒ |  j  j d | j | j	 f ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d | j | j | j | j	 f ƒ |  j  j d | j ƒ |  j  j d | j | j | j | j	 f ƒ |  j  j d | j ƒ |  j  j d | j | j | j | j f ƒ |  j  j d | j | j f ƒ |  j  j d ƒ |  j  j d | j | j f ƒ |  j  j d ƒ |  j  j d | j | j | j | j	 f ƒ |  j  j d | j | j | j | j | j
 f ƒ t | j ƒ d k r0|  j  j d | j ƒ n  |  j  j d | j ƒ t | j ƒ d k r‹|  j  j d | j | j | j	 | j f ƒ n  |  j  j d ƒ xg| j D]\} |  j  j d | j | j | j f ƒ x1 | j D]& } |  j  j d | j | j
 f ƒ qÛW|  j  j d | j | j | j	 f ƒ |  j  j d ƒ x( | j D] } |  j  j d | j ƒ qEW|  j  j d  ƒ x( | j D] } |  j  j d! | j
 ƒ q€W|  j  j d" ƒ |  j  j d# | j
 | j
 f ƒ |  j  j d$ ƒ |  j  j d% ƒ |  j  j d ƒ q¥W|  j  j d& | j | j f ƒ |  j  j d' ƒ |  j  j d( | j | j f ƒ |  j  j d) | j ƒ |  j  j d* | j | j	 | j f ƒ |  j  j d+ ƒ |  j  j d( | j | j f ƒ |  j  j d* | j | j	 | j f ƒ |  j  j d, ƒ |  j  j d- | j ƒ |  j  j d. | j | j | j	 f ƒ t | j ƒ d k rz|  j  j d/ t | j ƒ ƒ |  j  j d0 ƒ n  |  j  j d1 ƒ |  j  j d2 ƒ |  j  j d3 ƒ |  j  j d4 ƒ |  j  j d5 ƒ |  j  j d6 | j ƒ t | j ƒ d k r¶|  j  j d7 | j ƒ |  j  j d8 | j | j | j	 t | j ƒ f ƒ |  j  j d ƒ |  j  j d9 | j | j | j | j	 f ƒ |  j  j d: | j
 ƒ |  j  j d1 ƒ |  j  j d; ƒ |  j  j d< ƒ |  j  j d= ƒ |  j  j d> ƒ |  j  j d? | j | j f ƒ |  j  j d@ d] ƒ |  j  j dA | j | j | j | j	 | j | j f ƒ |  j  j dB | j ƒ |  j  j dC | j | j | j	 t | j ƒ | j | j f ƒ |  j  j d ƒ n  |  j  j dD | j | j | j | j | j	 | j f ƒ |  j  j dE ƒ |  j  j dF ƒ t | j ƒ d k r‡	|  j  j dG t | j ƒ ƒ d } x> | j D]0 } |  j  j dH | | j j f ƒ | dI 7} qP	Wn  |  j  j d ƒ d } xÉ | j D]¾ } |  j  j dJ | j j | j | j | j f ƒ |  j  j d. | j | j | j	 f ƒ |  j  j dK | j j | j j | f ƒ |  j  j dL ƒ |  j  j dM ƒ |  j  j d ƒ | dI 7} q§	W|  j  j dN | j | j | j f ƒ t | j ƒ d k rä
|  j  j dO | j | j | j f ƒ |  j  j dP | j ƒ n  |  j  j dQ ƒ |  j  j dR | j ƒ |  j  j dS | j ƒ |  j  j dT | j ƒ |  j  j dU | j ƒ |  j  j dV | j ƒ |  j  j d ƒ |  j  j dW | j | j f ƒ x7 | j D], } |  j  j dX | j | j | j f ƒ q¡Wx7 | j D], } |  j  j dY | j | j | j f ƒ qÛW|  j  j d ƒ |  j  j |  j j dZ | j | j
 | j f t ƒ ƒ |  j | |  j  d ƒ |  j  j d[ | j | j | j | j	 | j | j	 f ƒ d  S(^   NsP   /* ------------------------------------------------------------------------ */

s‚   /**
 * %sSkeleton:
 *
 * The #%sSkeleton structure contains only private data and should only be accessed using the provided API.
i    s   
sc   /**
 * %sSkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #%sSkeleton.
s¦   struct _%sSkeletonPrivate
{
  GValue *properties;
  GList *changed_properties;
  GSource *changed_properties_idle_source;
  GMainContext *context;
  GMutex lock;
};

s5  static void
_%s_skeleton_handle_method_call (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name,
  const gchar *method_name,
  GVariant *parameters,
  GDBusMethodInvocation *invocation,
  gpointer user_data)
{
  %sSkeleton *skeleton = %s%s_SKELETON (user_data);
  _ExtendedGDBusMethodInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint num_extra;
  guint n;
  guint signal_id;
  GValue return_value = G_VALUE_INIT;
sx     info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
  g_assert (info != NULL);
sq    num_params = g_variant_n_children (parameters);
  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
  n = 0;
  g_value_init (&paramv[n], %sTYPE_%s);
  g_value_set_object (&paramv[n++], skeleton);
  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
  g_value_set_object (&paramv[n++], invocation);
  if (info->pass_fdlist)
    {
#ifdef G_OS_UNIX
      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
#else
      g_assert_not_reached ();
#endif
    }
só    g_variant_iter_init (&iter, parameters);
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
s>     signal_id = g_signal_lookup (info->signal_name, %sTYPE_%s);
se    g_value_init (&return_value, G_TYPE_BOOLEAN);
  g_signal_emitv (paramv, signal_id, 0, &return_value);
  if (!g_value_get_boolean (&return_value))
    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
  g_value_unset (&return_value);
sb     for (n = 0; n < num_params + num_extra; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
s   }

sÃ  static GVariant *
_%s_skeleton_handle_get_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GError **error,
  gpointer user_data)
{
  %sSkeleton *skeleton = %s%s_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  GVariant *ret;
sÎ    ret = NULL;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %%s", property_name);
    }
  else
    {
      g_value_init (&value, pspec->value_type);
      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
      g_value_unset (&value);
    }
  return ret;
}

sÕ  static gboolean
_%s_skeleton_handle_set_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GVariant *variant,
  GError **error,
  gpointer user_data)
{
  %sSkeleton *skeleton = %s%s_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  gboolean ret;
sÞ    ret = FALSE;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %%s", property_name);
    }
  else
    {
      if (info->use_gvariant)
        g_value_set_variant (&value, variant);
      else
        g_dbus_gvariant_to_gvalue (variant, &value);
      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      g_value_unset (&value);
      ret = TRUE;
    }
  return ret;
}

s²   static const GDBusInterfaceVTable _%s_skeleton_vtable =
{
  _%s_skeleton_handle_method_call,
  _%s_skeleton_handle_get_property,
  _%s_skeleton_handle_set_property,
  {NULL}
};

s’   static GDBusInterfaceInfo *
%s_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return %s_interface_info ();
s¯   static GDBusInterfaceVTable *
%s_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return (GDBusInterfaceVTable *) &_%s_skeleton_vtable;
s–   static GVariant *
%s_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
  %sSkeleton *skeleton = %s%s_SKELETON (_skeleton);
sÊ  
  GVariantBuilder builder;
  guint n;
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  if (_%s_interface_info.parent_struct.properties == NULL)
    goto out;
  for (n = 0; _%s_interface_info.parent_struct.properties[n] != NULL; n++)
    {
      GDBusPropertyInfo *info = _%s_interface_info.parent_struct.properties[n];
      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
        {
          GVariant *value;
          value = _%s_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "%s", info->name, NULL, skeleton);
          if (value != NULL)
            {
              g_variant_take_ref (value);
              g_variant_builder_add (&builder, "{sv}", info->name, value);
              g_variant_unref (value);
            }
        }
    }
out:
  return g_variant_builder_end (&builder);
}

s8   static gboolean _%s_emit_changed (gpointer user_data);

sS   static void
%s_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
sÉ    %sSkeleton *skeleton = %s%s_SKELETON (_skeleton);
  gboolean emit_changed = FALSE;

  g_mutex_lock (&skeleton->priv->lock);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    {
      g_source_destroy (skeleton->priv->changed_properties_idle_source);
      skeleton->priv->changed_properties_idle_source = NULL;
      emit_changed = TRUE;
    }
  g_mutex_unlock (&skeleton->priv->lock);

  if (emit_changed)
    _%s_emit_changed (skeleton);
s-   static void
_%s_on_signal_%s (
    %s *objects   ,
    %sarg_%ssÕ   )
{
  %sSkeleton *skeleton = %s%s_SKELETON (object);

  GList      *connections, *l;
  GVariant   *signal_variant;
  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
s9   
  signal_variant = g_variant_ref_sink (g_variant_new ("(s   %ss   )"s   ,
                   arg_%ss   ));
s%    for (l = connections; l != NULL; l = l->next)
    {
      GDBusConnection *connection = l->data;
      g_dbus_connection_emit_signal (connection,
        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "%s", "%s",
        signal_variant, NULL);
    }
s$     g_variant_unref (signal_variant);
s2     g_list_free_full (connections, g_object_unref);
s5   static void %s_skeleton_iface_init (%sIface *iface);
s2   #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
sR   G_DEFINE_TYPE_WITH_CODE (%sSkeleton, %s_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
s4                            G_ADD_PRIVATE (%sSkeleton)
sV                            G_IMPLEMENT_INTERFACE (%sTYPE_%s, %s_skeleton_iface_init));

s   #else
s   #endif
s5   static void
%s_skeleton_finalize (GObject *object)
{
s1     %sSkeleton *skeleton = %s%s_SKELETON (object);
sZ     guint n;
  for (n = 0; n < %d; n++)
    g_value_unset (&skeleton->priv->properties[n]);
s'     g_free (skeleton->priv->properties);
sb     g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
s>     if (skeleton->priv->changed_properties_idle_source != NULL)
sG       g_source_destroy (skeleton->priv->changed_properties_idle_source);
s2     g_main_context_unref (skeleton->priv->context);
s)     g_mutex_clear (&skeleton->priv->lock);
sC     G_OBJECT_CLASS (%s_skeleton_parent_class)->finalize (object);
}

s“   static void
%s_skeleton_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
sô     %sSkeleton *skeleton = %s%s_SKELETON (object);
  g_assert (prop_id != 0 && prop_id - 1 < %d);
  g_mutex_lock (&skeleton->priv->lock);
  g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
  g_mutex_unlock (&skeleton->priv->lock);
sl   static gboolean
_%s_emit_changed (gpointer user_data)
{
  %sSkeleton *skeleton = %s%s_SKELETON (user_data);
sÅ    GList *l;
  GVariantBuilder builder;
  GVariantBuilder invalidated_builder;
  guint num_changes;

  g_mutex_lock (&skeleton->priv->lock);
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
  for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
    {
      ChangedProperty *cp = l->data;
      GVariant *variant;
      const GValue *cur_value;

      cur_value = &skeleton->priv->properties[cp->prop_id - 1];
      if (!_g_value_equal (cur_value, &cp->orig_value))
        {
          variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
          g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
          g_variant_unref (variant);
          num_changes++;
        }
    }
  if (num_changes > 0)
    {
      GList *connections, *ll;
      GVariant *signal_variant;
      signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "%s",
                                           &builder, &invalidated_builder));
      connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
      for (ll = connections; ll != NULL; ll = ll->next)
        {
          GDBusConnection *connection = ll->data;

          g_dbus_connection_emit_signal (connection,
                                         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
                                         "org.freedesktop.DBus.Properties",
                                         "PropertiesChanged",
                                         signal_variant,
                                         NULL);
        }
      g_variant_unref (signal_variant);
      g_list_free_full (connections, g_object_unref);
    }
  else
    {
      g_variant_builder_clear (&builder);
      g_variant_builder_clear (&invalidated_builder);
    }
s-     skeleton->priv->changed_properties = NULL;
s9     skeleton->priv->changed_properties_idle_source = NULL;
s*     g_mutex_unlock (&skeleton->priv->lock);
s     return FALSE;
}

s’  static void
_%s_schedule_emit_changed (%sSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
{
  ChangedProperty *cp;
  GList *l;
  cp = NULL;
  for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
    {
      ChangedProperty *i_cp = l->data;
      if (i_cp->info == info)
        {
          cp = i_cp;
          break;
        }
    }
sT    if (cp == NULL)
    {
      cp = g_new0 (ChangedProperty, 1);
      cp->prop_id = prop_id;
      cp->info = info;
      skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
      g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
      g_value_copy (orig_value, &cp->orig_value);
    }
}

sº  static void
%s_skeleton_notify (GObject      *object,
  GParamSpec *pspec G_GNUC_UNUSED)
{
  %sSkeleton *skeleton = %s%s_SKELETON (object);
  g_mutex_lock (&skeleton->priv->lock);
  if (skeleton->priv->changed_properties != NULL &&
      skeleton->priv->changed_properties_idle_source == NULL)
    {
      skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
      g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
      g_source_set_callback (skeleton->priv->changed_properties_idle_source, _%s_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
      g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _%s_emit_changed");
      g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
      g_source_unref (skeleton->priv->changed_properties_idle_source);
    }
  g_mutex_unlock (&skeleton->priv->lock);
}

s…   static void
%s_skeleton_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec)
{
s®    %sSkeleton *skeleton = %s%s_SKELETON (object);
  g_assert (prop_id != 0 && prop_id - 1 < %d);
  g_mutex_lock (&skeleton->priv->lock);
  g_object_freeze_notify (object);
  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
    {
      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL)
        _%s_schedule_emit_changed (skeleton, _%s_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]);
      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
      g_object_notify_by_pspec (object, pspec);
    }
  g_mutex_unlock (&skeleton->priv->lock);
  g_object_thaw_notify (object);
s  static void
%s_skeleton_init (%sSkeleton *skeleton)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  skeleton->priv = %s_skeleton_get_instance_private (skeleton);
#else
  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, %sTYPE_%s_SKELETON, %sSkeletonPrivate);
#endif

s(     g_mutex_init (&skeleton->priv->lock);
sB     skeleton->priv->context = g_main_context_ref_thread_default ();
s4     skeleton->priv->properties = g_new0 (GValue, %d);
s6     g_value_init (&skeleton->priv->properties[%d], %s);
i   s,   static %s
%s_skeleton_get_%s (%s *object)
{
s     %svalue;
  g_mutex_lock (&skeleton->priv->lock);
  value = %s (&(skeleton->priv->properties[%d]));
  g_mutex_unlock (&skeleton->priv->lock);
s     return value;
s   }
sé   static void
%s_skeleton_class_init (%sSkeletonClass *klass)
{
  GObjectClass *gobject_class;
  GDBusInterfaceSkeletonClass *skeleton_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = %s_skeleton_finalize;
s©     gobject_class->get_property = %s_skeleton_get_property;
  gobject_class->set_property = %s_skeleton_set_property;
  gobject_class->notify       = %s_skeleton_notify;

s.   
  %s_override_properties (gobject_class, 1);
s=   
  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
sB     skeleton_class->get_info = %s_skeleton_dbus_interface_get_info;
sN     skeleton_class->get_properties = %s_skeleton_dbus_interface_get_properties;
s<     skeleton_class->flush = %s_skeleton_dbus_interface_flush;
sF     skeleton_class->get_vtable = %s_skeleton_dbus_interface_get_vtable;
sy   
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (%sSkeletonPrivate));
#endif
s6   static void
%s_skeleton_iface_init (%sIface *iface)
{
s      iface->%s = _%s_on_signal_%s;
s&     iface->get_%s = %s_skeleton_get_%s;
sœ   /**
 * %s_skeleton_new:
 *
 * Creates a skeleton object for the D-Bus interface #%s.
 *
 * Returns: (transfer full) (type %sSkeleton): The skeleton object.
sZ   %s *
%s_skeleton_new (void)
{
  return %s%s (g_object_new (%sTYPE_%s_SKELETON, NULL));
}

(    (    (   R   R   R	   RQ   R"   R$   RR   R!   R   R    R   R   R-   R+   R,   R*   Rk   R.   Rc   t
   ctype_in_gt
   gvalue_get(   R   R8   R>   R=   RD   R?   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_skeleton  s`        &#$ & &&& 2,2 #&* c      
   C   s
  |  j  j d ƒ |  j  j |  j j d |  j |  j |  j |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d |  j |  j f ƒ |  j  j d |  j |  j f ƒ |  j  j d ƒ |  j  j d |  j |  j f ƒ x” |  j D]‰ } |  j  j |  j j d	 |  j | j | j	 | j
 f t ƒ ƒ |  j | |  j  d
 ƒ |  j  j d | j | j | j |  j | j f ƒ qYW|  j  j d ƒ xÌ |  j D]Á } |  j  j |  j j d |  j | j j ƒ  |  j | j	 | j
 | j	 f t ƒ ƒ |  j | |  j  d ƒ |  j  j d | j	 |  j | j j ƒ  |  j f ƒ |  j  j d | j
 |  j | j f ƒ q W|  j  j d ƒ xÒ |  j D]Ç } |  j  j |  j j d |  j | j j ƒ  |  j |  j | j j ƒ  | j	 f t ƒ ƒ |  j | |  j  d ƒ |  j  j d | j	 |  j | j j ƒ  |  j f ƒ |  j  j d | j
 |  j | j f ƒ qßW|  j  j d ƒ |  j  j d |  j ƒ |  j  j |  j j d |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d |  j |  j |  j f ƒ |  j  j d |  j |  j |  j f ƒ |  j  j d ƒ |  j  j d |  j |  j |  j |  j |  j |  j f ƒ |  j  j d |  j |  j f ƒ |  j  j d |  j ƒ |  j  j d d4 ƒ |  j  j d |  j |  j |  j f ƒ d } x8 |  j D]- } |  j  j d | | j
 f ƒ | d 7} q„W|  j  j d  d5 ƒ |  j  j d! |  j |  j |  j |  j f ƒ d } x8 |  j D]- } |  j  j d" | | j f ƒ | d 7} qW|  j  j d ƒ |  j  j |  j j d# |  j t ƒ ƒ |  j  j d$ |  j |  j |  j |  j f ƒ |  j  j |  j j d% |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d ƒ |  j  j |  j j d& |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d' |  j |  j |  j f ƒ |  j  j d ƒ |  j  j d( |  j |  j |  j f ƒ |  j  j d) |  j |  j |  j |  j |  j |  j f ƒ |  j  j d* |  j |  j f ƒ |  j  j d+ |  j |  j |  j f ƒ d } xD |  j D]9 } |  j  j d, | |  j | j | j
 f ƒ | d 7} q W|  j  j d  d6 ƒ |  j  j d- |  j |  j |  j f ƒ d } x8 |  j D]- } |  j  j d | | j
 f ƒ | d 7} q§W|  j  j d  d7 ƒ |  j  j d. |  j |  j |  j |  j f ƒ d } x8 |  j D]- } |  j  j d" | | j f ƒ | d 7} q(	W|  j  j d ƒ |  j  j |  j j d/ |  j t ƒ ƒ |  j  j d0 |  j |  j |  j |  j f ƒ x½ |  j D]² } |  j  j |  j j d1 |  j | j j ƒ  |  j | j	 | j	 | j
 f t ƒ ƒ |  j | |  j  d ƒ |  j  j d2 |  j | j j ƒ  |  j | j	 f ƒ |  j  j d3 | j ƒ qÅ	W|  j  j d ƒ d  S(8   NsÐ   /* ------------------------------------------------------------------------
 * Code for Object, ObjectProxy and ObjectSkeleton
 * ------------------------------------------------------------------------
 */

s  /**
 * SECTION:%sObject
 * @title: %sObject
 * @short_description: Specialized GDBusObject types
 *
 * This section contains the #%sObject, #%sObjectProxy, and #%sObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces.
 */
s   
sX   /**
 * %sObject:
 *
 * The #%sObject type is a specialized container of interfaces.
 */
ss   /**
 * %sObjectIface:
 * @parent_iface: The parent interface.
 *
 * Virtual table for the #%sObject interface.
 */
s)   typedef %sObjectIface %sObjectInterface;
sŒ   G_DEFINE_INTERFACE_WITH_CODE (%sObject, %sobject, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT));
s;   static void
%sobject_default_init (%sObjectIface *iface)
{
s»     /**
   * %sObject:%s:
   *
   * The #%s instance corresponding to the D-Bus interface #%s, if any.
   *
   * Connect to the #GObject::notify signal to get informed of property changes.
i   s     g_object_interface_install_property (iface, g_param_spec_object ("%s", "%s", "%s", %sTYPE_%s, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));

s   }

s  /**
 * %sobject_get_%s:
 * @object: A #%sObject.
 *
 * Gets the #%s instance for the D-Bus interface #%s on @object, if any.
 *
 * Returns: (transfer full): A #%s that must be freed with g_object_unref() or %%NULL if @object does not implement the interface.
i    s'   %s *%sobject_get_%s (%sObject *object)
s™   {
  GDBusInterface *ret;
  ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");
  if (ret == NULL)
    return NULL;
  return %s%s (ret);
}

só  /**
 * %sobject_peek_%s: (skip)
 * @object: A #%sObject.
 *
 * Like %sobject_get_%s() but doesn't increase the reference count on the returned object.
 *
 * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
 *
 * Returns: (transfer none): A #%s or %%NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
s(   %s *%sobject_peek_%s (%sObject *object)
s±   {
  GDBusInterface *ret;
  ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");
  if (ret == NULL)
    return NULL;
  g_object_unref (ret);
  return %s%s (ret);
}

sá  static void
%sobject_notify (GDBusObject *object, GDBusInterface *interface)
{
  _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface);
  /* info can be NULL if the other end is using a D-Bus interface we don't know
   * anything about, for example old generated code in this process talking to
   * newer generated code in the other process. */
  if (info != NULL)
    g_object_notify (G_OBJECT (object), info->hyphen_name);
}

sˆ   /**
 * %sObjectProxy:
 *
 * The #%sObjectProxy structure contains only private data and should only be accessed using the provided API.
s    */
si   /**
 * %sObjectProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #%sObjectProxy.
sZ   static void
%sobject_proxy__%sobject_iface_init (%sObjectIface *iface G_GNUC_UNUSED)
{
}

s®   static void
%sobject_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface)
{
  iface->interface_added = %sobject_notify;
  iface->interface_removed = %sobject_notify;
}

s'  G_DEFINE_TYPE_WITH_CODE (%sObjectProxy, %sobject_proxy, G_TYPE_DBUS_OBJECT_PROXY,
                         G_IMPLEMENT_INTERFACE (%sTYPE_OBJECT, %sobject_proxy__%sobject_iface_init)
                         G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, %sobject_proxy__g_dbus_object_iface_init));

sK   static void
%sobject_proxy_init (%sObjectProxy *object G_GNUC_UNUSED)
{
}

sÖ   static void
%sobject_proxy_set_property (GObject      *gobject,
  guint         prop_id,
  const GValue *value G_GNUC_UNUSED,
  GParamSpec   *pspec)
{
  G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
sô   static void
%sobject_proxy_get_property (GObject      *gobject,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec)
{
  %sObjectProxy *object = %sOBJECT_PROXY (gobject);
  GDBusInterface *interface;

  switch (prop_id)
    {
i   s—       case %d:
      interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");
      g_value_take_object (value, interface);
      break;

sd       default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
      break;
  }
}

sø   static void
%sobject_proxy_class_init (%sObjectProxyClass *klass)
{
  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);

  gobject_class->set_property = %sobject_proxy_set_property;
  gobject_class->get_property = %sobject_proxy_get_property;

s>     g_object_class_override_property (gobject_class, %d, "%s");
s¸   /**
 * %sobject_proxy_new:
 * @connection: A #GDBusConnection.
 * @object_path: An object path.
 *
 * Creates a new proxy object.
 *
 * Returns: (transfer full): The proxy object.
 */
si  %sObjectProxy *
%sobject_proxy_new (GDBusConnection *connection,
  const gchar *object_path)
{
  g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL);
  g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
  return %sOBJECT_PROXY (g_object_new (%sTYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL));
}

sŽ   /**
 * %sObjectSkeleton:
 *
 * The #%sObjectSkeleton structure contains only private data and should only be accessed using the provided API.
so   /**
 * %sObjectSkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #%sObjectSkeleton.
s]   static void
%sobject_skeleton__%sobject_iface_init (%sObjectIface *iface G_GNUC_UNUSED)
{
}

s±   static void
%sobject_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface)
{
  iface->interface_added = %sobject_notify;
  iface->interface_removed = %sobject_notify;
}

s6  G_DEFINE_TYPE_WITH_CODE (%sObjectSkeleton, %sobject_skeleton, G_TYPE_DBUS_OBJECT_SKELETON,
                         G_IMPLEMENT_INTERFACE (%sTYPE_OBJECT, %sobject_skeleton__%sobject_iface_init)
                         G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, %sobject_skeleton__g_dbus_object_iface_init));

sQ   static void
%sobject_skeleton_init (%sObjectSkeleton *object G_GNUC_UNUSED)
{
}

s  static void
%sobject_skeleton_set_property (GObject      *gobject,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec)
{
  %sObjectSkeleton *object = %sOBJECT_SKELETON (gobject);
  GDBusInterfaceSkeleton *interface;

  switch (prop_id)
    {
s‰      case %d:
      interface = g_value_get_object (value);
      if (interface != NULL)
        {
          g_warn_if_fail (%sIS_%s (interface));
          g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
        }
      else
        {
          g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "%s");
        }
      break;

sý   static void
%sobject_skeleton_get_property (GObject      *gobject,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec)
{
  %sObjectSkeleton *object = %sOBJECT_SKELETON (gobject);
  GDBusInterface *interface;

  switch (prop_id)
    {
s  static void
%sobject_skeleton_class_init (%sObjectSkeletonClass *klass)
{
  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);

  gobject_class->set_property = %sobject_skeleton_set_property;
  gobject_class->get_property = %sobject_skeleton_get_property;

s   /**
 * %sobject_skeleton_new:
 * @object_path: An object path.
 *
 * Creates a new skeleton object.
 *
 * Returns: (transfer full): The skeleton object.
 */
sø   %sObjectSkeleton *
%sobject_skeleton_new (const gchar *object_path)
{
  g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
  return %sOBJECT_SKELETON (g_object_new (%sTYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL));
}

sÌ   /**
 * %sobject_skeleton_set_%s:
 * @object: A #%sObjectSkeleton.
 * @interface_: (allow-none): A #%s or %%NULL to clear the interface.
 *
 * Sets the #%s instance for the D-Bus interface #%s on @object.
sI   void %sobject_skeleton_set_%s (%sObjectSkeleton *object, %s *interface_)
sA   {
  g_object_set (G_OBJECT (object), "%s", interface_, NULL);
}

(    (    (    (    (   R   R   R	   RQ   R   R$   R   R   RN   R"   R   RR   R   R    R   (   R   R8   RD   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_objecta
  s2   ,  &*8&	>&	, 	 ,  8&c         C   s¸  |  j  j d ƒ |  j  j |  j j d |  j |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d ƒ |  j  j d |  j |  j f ƒ |  j  j d |  j |  j f ƒ |  j  j d	 |  j |  j f ƒ |  j  j |  j j d
 |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d |  j ƒ |  j  j d |  j ƒ x7 |  j D], } |  j  j d | j	 | j | j
 f ƒ qÊW|  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d |  j |  j |  j f ƒ |  j  j d |  j |  j |  j |  j f ƒ |  j  j d ƒ |  j  j d |  j ƒ |  j  j |  j j d |  j |  j |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d |  j |  j |  j f ƒ |  j  j d ƒ |  j  j |  j j d |  j |  j |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d |  j |  j |  j f ƒ |  j  j d |  j |  j |  j |  j f ƒ |  j  j d ƒ |  j  j d |  j ƒ |  j  j |  j j d |  j |  j |  j |  j f t ƒ ƒ |  j  j d ƒ |  j  j d |  j |  j |  j f ƒ |  j  j d ƒ d  S(   Ns¾   /* ------------------------------------------------------------------------
 * Code for ObjectManager client
 * ------------------------------------------------------------------------
 */

s  /**
 * SECTION:%sObjectManagerClient
 * @title: %sObjectManagerClient
 * @short_description: Generated GDBusObjectManagerClient type
 *
 * This section contains a #GDBusObjectManagerClient that uses %sobject_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc.
 */
s   
s˜   /**
 * %sObjectManagerClient:
 *
 * The #%sObjectManagerClient structure contains only private data and should only be accessed using the provided API.
s    */
sy   /**
 * %sObjectManagerClientClass:
 * @parent_class: The parent class.
 *
 * Class structure for #%sObjectManagerClient.
sd   G_DEFINE_TYPE (%sObjectManagerClient, %sobject_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT);

s]   static void
%sobject_manager_client_init (%sObjectManagerClient *manager G_GNUC_UNUSED)
{
}

sf   static void
%sobject_manager_client_class_init (%sObjectManagerClientClass *klass G_GNUC_UNUSED)
{
}

s4  /**
 * %sobject_manager_client_get_proxy_type:
 * @manager: A #GDBusObjectManagerClient.
 * @object_path: The object path of the remote object (unused).
 * @interface_name: (allow-none): Interface name of the remote object or %%NULL to get the object proxy #GType.
 * @user_data: User data (unused).
 *
 * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy<!-- -->- and #GDBusProxy<!-- -->-derived types.
 *
 * Returns: A #GDBusProxy<!-- -->-derived #GType if @interface_name is not %%NULL, otherwise the #GType for #%sObjectProxy.
sÈ   GType
%sobject_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED)
{
s    static gsize once_init_value = 0;
  static GHashTable *lookup_hash;
  GType ret;

  if (interface_name == NULL)
    return %sTYPE_OBJECT_PROXY;
  if (g_once_init_enter (&once_init_value))
    {
      lookup_hash = g_hash_table_new (g_str_hash, g_str_equal);
s^         g_hash_table_insert (lookup_hash, (gpointer) "%s", GSIZE_TO_POINTER (%sTYPE_%s_PROXY));
s5         g_once_init_leave (&once_init_value, 1);
    }
s‹     ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name));
  if (ret == (GType) 0)
    ret = G_TYPE_DBUS_PROXY;
s     return ret;
}

s#  /**
 * %sobject_manager_client_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates #GDBusObjectManagerClient using %sobject_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call %sobject_manager_client_new_finish() to get the result of the operation.
 *
 * See %sobject_manager_client_new_sync() for the synchronous, blocking version of this constructor.
sG  void
%sobject_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data)
{
  g_async_initable_new_async (%sTYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);
}

sŒ  /**
 * %sobject_manager_client_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %sobject_manager_client_new().
 * @error: Return location for error or %%NULL
 *
 * Finishes an operation started with %sobject_manager_client_new().
 *
 * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.
sª  GDBusObjectManager *
%sobject_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}

sh  /**
 * %sobject_manager_client_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @error: Return location for error or %%NULL
 *
 * Synchronously creates #GDBusObjectManagerClient using %sobject_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See %sobject_manager_client_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.
so  GDBusObjectManager *
%sobject_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error)
{
  GInitable *ret;
  ret = g_initable_new (%sTYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}

sŽ  /**
 * %sobject_manager_client_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like %sobject_manager_client_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call %sobject_manager_client_new_for_bus_finish() to get the result of the operation.
 *
 * See %sobject_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.
sI  void
%sobject_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data)
{
  g_async_initable_new_async (%sTYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);
}

s¤  /**
 * %sobject_manager_client_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %sobject_manager_client_new_for_bus().
 * @error: Return location for error or %%NULL
 *
 * Finishes an operation started with %sobject_manager_client_new_for_bus().
 *
 * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.
s²  GDBusObjectManager *
%sobject_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}

sÌ  /**
 * %sobject_manager_client_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %%NULL.
 * @error: Return location for error or %%NULL
 *
 * Like %sobject_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See %sobject_manager_client_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.
sq  GDBusObjectManager *
%sobject_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error)
{
  GInitable *ret;
  ret = g_initable_new (%sTYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}

(   R   R   R	   RQ   R   R   R$   R   R   R   R    (   R   R8   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_object_manager_clientô  sŽ     
	& && &c         C   s  t  | j ƒ d k r; | j d | d | d | j f ƒ n  | j rñ t | t j ƒ r_ d } n` t | t j ƒ rz d } nE t | t j ƒ r• d } n* t | t j	 ƒ r° d } n t
 d | ƒ ‚ | j |  j j d	 | d | d | f t ƒ ƒ n  | j d
 | d f ƒ d  S(   Ni    s   %*s *
%*s * Since: %s
R   s   The D-Bus interfaces   The D-Bus methods   The D-Bus signals   The D-Bus propertys   Cannot handle object s0   %*s *
%*s * Deprecated: %s has been deprecated.
s   %*s */
(   R   R(   R   R2   t
   isinstanceR   t	   Interfacet   Methodt   Signalt   PropertyRd   R	   RQ   R$   (   R   t   objt   ft   indentt   thing(    (    s&   /usr/share/glib-2.0/codegen/codegen.pyRR     s"    						 c         C   sf   |  j  j d | j ƒ |  j  j |  j j d | j | j | j | j f t ƒ ƒ |  j  j d ƒ d  S(   Ns¶   /* ------------------------------------------------------------------------
 * Code for interface %s
 * ------------------------------------------------------------------------
 */

s·   /**
 * SECTION:%s
 * @title: %s
 * @short_description: Generated C code for the %s D-Bus interface
 *
 * This section contains code for working with the #%s D-Bus interface in C.
 */
s   
(   R   R   R   R	   RQ   R"   R$   (   R   R8   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generate_interface_intro1  s    &c         C   sË   |  j  ƒ  |  j ƒ  x† |  j D]{ } |  j | ƒ |  j | ƒ |  j | ƒ |  j | ƒ |  j | ƒ |  j | ƒ |  j	 | ƒ |  j
 | ƒ |  j | ƒ q W|  j r½ |  j ƒ  |  j ƒ  n  |  j ƒ  d  S(   N(   R   R@   R   R‰   RT   Rh   Ri   Rj   Rm   Rn   Rz   R}   R
   R~   R   RA   (   R   R8   (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   generateC  s     

	
(   t   __name__t
   __module__R   R   R@   RA   RE   RH   RT   Rh   Ri   Rj   Rm   Rn   Rz   R}   R~   R   RR   R‰   RŠ   (    (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyR      s4   		µ	ÿ á		'		¾	Ç	W		»	4	ÿ ÿ 	ÿ ÿ `	ÿ ”	ÿ &		(    (   t   sysR   R    R   R   R   (    (    (    s&   /usr/share/glib-2.0/codegen/codegen.pyt   <module>   s   