guint Gio::DBus::watch_name(Gio::DBus::BusType, const Glib::ustring&, const SlotNameAppeared&, const SlotNameVanished&, Gio::DBus::BusNameWatcherFlags) (BusType bus_type, const struct ustring & name, const struct SlotNameAppeared & name_appeared_slot, const struct SlotNameVanished & name_vanished_slot, BusNameWatcherFlags flags)
{
  void * D.101026;
  void * D.101036;
  guint D.101780;
  const char * D.101781;
  struct WatchSlots * slots;

  slots = operator new (16);
  D.101026 = operator new (16);
  try
    {
      sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::slot (D.101026, name_appeared_slot);
    }
  catch
    {
      operator delete (D.101026);
    }
  slots->name_appeared_slot = D.101026;
  D.101036 = operator new (16);
  try
    {
      sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::slot (D.101036, name_vanished_slot);
    }
  catch
    {
      operator delete (D.101036);
    }
  slots->name_vanished_slot = D.101036;
  D.101781 = Glib::ustring::c_str (name);
  D.101780 = g_bus_watch_name (bus_type, D.101781, flags, Bus_Name_Appeared_giomm_callback, Bus_Name_Vanished_giomm_callback, slots, Bus_Watch_Name_giomm_callback_destroy);
  return D.101780;
}


void {anonymous}::Bus_Watch_Name_giomm_callback_destroy(void*) (void * data)
{
  struct SlotNameAppeared * D.101791;
  struct SlotNameAppeared * D.101794;
  struct SlotNameVanished * D.101799;
  struct SlotNameVanished * D.101802;
  struct WatchSlots * slots;

  slots = data;
  D.101791 = slots->name_appeared_slot;
  if (D.101791 != 0B) goto <D.101792>; else goto <D.101793>;
  <D.101792>:
  D.101794 = slots->name_appeared_slot;
  if (D.101794 != 0B) goto <D.101795>; else goto <D.101796>;
  <D.101795>:
  sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::~slot (D.101794);
  operator delete (D.101794);
  goto <D.101797>;
  <D.101796>:
  <D.101797>:
  goto <D.101798>;
  <D.101793>:
  <D.101798>:
  D.101799 = slots->name_vanished_slot;
  if (D.101799 != 0B) goto <D.101800>; else goto <D.101801>;
  <D.101800>:
  D.101802 = slots->name_vanished_slot;
  if (D.101802 != 0B) goto <D.101803>; else goto <D.101804>;
  <D.101803>:
  sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::~slot (D.101802);
  operator delete (D.101802);
  goto <D.101805>;
  <D.101804>:
  <D.101805>:
  goto <D.101806>;
  <D.101801>:
  <D.101806>:
  operator delete (slots);
}


sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::~slot() (struct slot * const this)
{
  struct slot3 * D.101807;

  {
    try
      {
        try
          {

          }
        finally
          {
            D.101807 = &this->D.100687;
            sigc::slot3<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::~slot3 (D.101807);
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.100719>:
}


sigc::slot3<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::~slot3() (struct slot3 * const this)
{
  struct slot_base * D.101809;

  {
    try
      {
        try
          {

          }
        finally
          {
            D.101809 = &this->D.100645;
            sigc::slot_base::~slot_base (D.101809);
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.100714>:
}


sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::~slot() (struct slot * const this)
{
  struct slot2 * D.101811;

  {
    try
      {
        try
          {

          }
        finally
          {
            D.101811 = &this->D.100817;
            sigc::slot2<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::~slot2 (D.101811);
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.100849>:
}


sigc::slot2<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::~slot2() (struct slot2 * const this)
{
  struct slot_base * D.101813;

  {
    try
      {
        try
          {

          }
        finally
          {
            D.101813 = &this->D.100775;
            sigc::slot_base::~slot_base (D.101813);
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.100844>:
}


void {anonymous}::Bus_Name_Vanished_giomm_callback(GDBusConnection*, const gchar*, gpointer) (struct GDBusConnection * connection, const gchar * name, void * data)
{
  struct ustring D.101013;
  struct RefPtr D.101012;
  struct slot2 * D.101815;
  void * D.101816;
  struct WatchSlots * slots;
  struct SlotNameVanished * the_slot;

  slots = data;
  the_slot = slots->name_vanished_slot;
  try
    {
      D.101013 = Glib::convert_const_gchar_ptr_to_ustring (name); [return slot optimization]
      try
        {
          D.101012 = Glib::wrap (connection, 1); [return slot optimization]
          try
            {
              D.101815 = &the_slot->D.100817;
              sigc::slot2<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::operator() (D.101815, &D.101012, &D.101013);
            }
          finally
            {
              Glib::RefPtr<Gio::DBus::Connection>::~RefPtr (&D.101012);
              D.101012 = {CLOBBER};
            }
        }
      finally
        {
          Glib::ustring::~ustring (&D.101013);
          D.101013 = {CLOBBER};
        }
    }
  catch
    {
      catch (NULL)
        {
          try
            {
              D.101816 = __builtin_eh_pointer (0);
              __cxa_begin_catch (D.101816);
              Glib::exception_handlers_invoke ();
            }
          finally
            {
              __cxa_end_catch ();
            }
        }
    }
}


Glib::ustring Glib::convert_const_gchar_ptr_to_ustring(const char*) (const char * str)
{
  struct ustring * D.101825;

  if (str != 0B) goto <D.101823>; else goto <D.101824>;
  <D.101823>:
  D.101825 = <retval>;
  Glib::ustring::ustring (D.101825, str);
  goto <D.101826>;
  <D.101824>:
  D.101825 = <retval>;
  Glib::ustring::ustring (D.101825);
  <D.101826>:
  return <retval>;
}


T_return sigc::slot2<T_return, T_arg1, T_arg2>::operator()(sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type_, sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type_) const [with T_return = void; T_arg1 = const Glib::RefPtr<Gio::DBus::Connection>&; T_arg2 = Glib::ustring; sigc::slot2<T_return, T_arg1, T_arg2>::arg1_type_ = const Glib::RefPtr<Gio::DBus::Connection>&; sigc::slot2<T_return, T_arg1, T_arg2>::arg2_type_ = const Glib::ustring&] (const struct slot2 * const this, const struct RefPtr & _A_a1, const struct ustring & _A_a2)
{
  bool retval.0;
  bool iftmp.1;
  const struct slot_base * D.101832;
  bool D.101833;
  bool D.101834;
  bool D.101836;
  bool D.101837;
  struct rep_type * D.101841;
  void * (*<T609>) (void *) D.101842;

  D.101832 = &this->D.100775;
  D.101833 = sigc::slot_base::empty (D.101832);
  D.101834 = ~D.101833;
  if (D.101834 != 0) goto <D.101835>; else goto <D.101830>;
  <D.101835>:
  D.101832 = &this->D.100775;
  D.101836 = sigc::slot_base::blocked (D.101832);
  D.101837 = ~D.101836;
  if (D.101837 != 0) goto <D.101838>; else goto <D.101830>;
  <D.101838>:
  iftmp.1 = 1;
  goto <D.101831>;
  <D.101830>:
  iftmp.1 = 0;
  <D.101831>:
  retval.0 = iftmp.1;
  if (retval.0 != 0) goto <D.101839>; else goto <D.101840>;
  <D.101839>:
  D.101841 = this->D.100775.rep_;
  D.101842 = D.101841->call_;
  D.101841 = this->D.100775.rep_;
  D.101842 (D.101841, _A_a1, _A_a2);
  return;
  <D.101840>:
  return;
}


bool sigc::slot_base::empty() const (const struct slot_base * const this)
{
  bool D.101844;
  bool iftmp.2;
  struct rep_type * D.101849;
  void * (*<T609>) (void *) D.101851;

  D.101849 = this->rep_;
  if (D.101849 == 0B) goto <D.101846>; else goto <D.101850>;
  <D.101850>:
  D.101849 = this->rep_;
  D.101851 = D.101849->call_;
  if (D.101851 == 0B) goto <D.101846>; else goto <D.101847>;
  <D.101846>:
  iftmp.2 = 1;
  goto <D.101848>;
  <D.101847>:
  iftmp.2 = 0;
  <D.101848>:
  D.101844 = iftmp.2;
  return D.101844;
}


bool sigc::slot_base::blocked() const (const struct slot_base * const this)
{
  bool D.101853;

  D.101853 = this->blocked_;
  return D.101853;
}


Glib::RefPtr<T_CppObject>::~RefPtr() [with T_CppObject = Gio::DBus::Connection] (struct RefPtr * const this)
{
  struct Connection * D.101855;
  int (*__vtbl_ptr_type) () * D.101858;
  int (*__vtbl_ptr_type) () * D.101859;
  long int D.101860;
  sizetype D.101861;
  struct ObjectBase * D.101862;
  int (*__vtbl_ptr_type) () * D.101863;
  int (*__vtbl_ptr_type) () * D.101864;
  int (*__vtbl_ptr_type) () D.101865;

  {
    try
      {
        D.101855 = this->pCppObject_;
        if (D.101855 != 0B) goto <D.101856>; else goto <D.101857>;
        <D.101856>:
        D.101855 = this->pCppObject_;
        D.101855 = this->pCppObject_;
        D.101858 = D.101855->D.100492._vptr.Object;
        D.101859 = D.101858 + 18446744073709551592;
        D.101860 = MEM[(long int *)D.101859];
        D.101861 = (sizetype) D.101860;
        D.101862 = D.101855 + D.101861;
        D.101855 = this->pCppObject_;
        D.101855 = this->pCppObject_;
        D.101858 = D.101855->D.100492._vptr.Object;
        D.101859 = D.101858 + 18446744073709551592;
        D.101860 = MEM[(long int *)D.101859];
        D.101861 = (sizetype) D.101860;
        D.101862 = D.101855 + D.101861;
        D.101863 = D.101862->_vptr.ObjectBase;
        D.101864 = D.101863 + 24;
        D.101865 = *D.101864;
        D.101855 = this->pCppObject_;
        D.101855 = this->pCppObject_;
        D.101858 = D.101855->D.100492._vptr.Object;
        D.101859 = D.101858 + 18446744073709551592;
        D.101860 = MEM[(long int *)D.101859];
        D.101861 = (sizetype) D.101860;
        D.101862 = D.101855 + D.101861;
        OBJ_TYPE_REF(D.101865;(const struct ObjectBase)D.101862->3) (D.101862);
        goto <D.101866>;
        <D.101857>:
        <D.101866>:
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.101418>:
}


void {anonymous}::Bus_Name_Appeared_giomm_callback(GDBusConnection*, const gchar*, const char*, gpointer) (struct GDBusConnection * connection, const gchar * name, const char * name_owner, void * data)
{
  struct ustring D.101004;
  struct ustring D.101003;
  struct RefPtr D.101002;
  struct slot3 * D.101868;
  void * D.101869;
  struct WatchSlots * slots;
  struct SlotNameAppeared * the_slot;

  slots = data;
  the_slot = slots->name_appeared_slot;
  try
    {
      D.101004 = Glib::convert_const_gchar_ptr_to_ustring (name_owner); [return slot optimization]
      try
        {
          D.101003 = Glib::convert_const_gchar_ptr_to_ustring (name); [return slot optimization]
          try
            {
              D.101002 = Glib::wrap (connection, 1); [return slot optimization]
              try
                {
                  D.101868 = &the_slot->D.100687;
                  sigc::slot3<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::operator() (D.101868, &D.101002, &D.101003, &D.101004);
                }
              finally
                {
                  Glib::RefPtr<Gio::DBus::Connection>::~RefPtr (&D.101002);
                  D.101002 = {CLOBBER};
                }
            }
          finally
            {
              Glib::ustring::~ustring (&D.101003);
              D.101003 = {CLOBBER};
            }
        }
      finally
        {
          Glib::ustring::~ustring (&D.101004);
          D.101004 = {CLOBBER};
        }
    }
  catch
    {
      catch (NULL)
        {
          try
            {
              D.101869 = __builtin_eh_pointer (0);
              __cxa_begin_catch (D.101869);
              Glib::exception_handlers_invoke ();
            }
          finally
            {
              __cxa_end_catch ();
            }
        }
    }
}


T_return sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::operator()(sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::arg1_type_, sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::arg2_type_, sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::arg3_type_) const [with T_return = void; T_arg1 = const Glib::RefPtr<Gio::DBus::Connection>&; T_arg2 = Glib::ustring; T_arg3 = const Glib::ustring&; sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::arg1_type_ = const Glib::RefPtr<Gio::DBus::Connection>&; sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::arg2_type_ = const Glib::ustring&; sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::arg3_type_ = const Glib::ustring&] (const struct slot3 * const this, const struct RefPtr & _A_a1, const struct ustring & _A_a2, const struct ustring & _A_a3)
{
  bool retval.3;
  bool iftmp.4;
  const struct slot_base * D.101880;
  bool D.101881;
  bool D.101882;
  bool D.101884;
  bool D.101885;
  struct rep_type * D.101889;
  void * (*<T609>) (void *) D.101890;

  D.101880 = &this->D.100645;
  D.101881 = sigc::slot_base::empty (D.101880);
  D.101882 = ~D.101881;
  if (D.101882 != 0) goto <D.101883>; else goto <D.101878>;
  <D.101883>:
  D.101880 = &this->D.100645;
  D.101884 = sigc::slot_base::blocked (D.101880);
  D.101885 = ~D.101884;
  if (D.101885 != 0) goto <D.101886>; else goto <D.101878>;
  <D.101886>:
  iftmp.4 = 1;
  goto <D.101879>;
  <D.101878>:
  iftmp.4 = 0;
  <D.101879>:
  retval.3 = iftmp.4;
  if (retval.3 != 0) goto <D.101887>; else goto <D.101888>;
  <D.101887>:
  D.101889 = this->D.100645.rep_;
  D.101890 = D.101889->call_;
  D.101889 = this->D.100645.rep_;
  D.101890 (D.101889, _A_a1, _A_a2, _A_a3);
  return;
  <D.101888>:
  return;
}


sigc::slot<T_return, T_arg1, T_arg2, T_arg3, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const sigc::slot<T_return, T_arg1, T_arg2, T_arg3, sigc::nil, sigc::nil, sigc::nil, sigc::nil>&) [with T_return = void; T_arg1 = const Glib::RefPtr<Gio::DBus::Connection>&; T_arg2 = Glib::ustring; T_arg3 = const Glib::ustring&] (struct slot * const this, const struct slot & src)
{
  struct slot3 * D.101892;

  D.101892 = &this->D.100687;
  sigc::slot3<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::slot3 (D.101892, src);
  try
    {

    }
  catch
    {
      D.101892 = &this->D.100687;
      sigc::slot3<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::~slot3 (D.101892);
    }
}


sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>::slot3(const sigc::slot3<T_return, T_arg1, T_arg2, T_arg3>&) [with T_return = void; T_arg1 = const Glib::RefPtr<Gio::DBus::Connection>&; T_arg2 = Glib::ustring; T_arg3 = const Glib::ustring&] (struct slot3 * const this, const struct slot3 & src)
{
  const struct slot_base * D.101893;
  struct slot_base * D.101894;

  D.101893 = &src->D.100645;
  D.101894 = &this->D.100645;
  sigc::slot_base::slot_base (D.101894, D.101893);
  try
    {

    }
  catch
    {
      D.101894 = &this->D.100645;
      sigc::slot_base::~slot_base (D.101894);
    }
}


sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>&) [with T_return = void; T_arg1 = const Glib::RefPtr<Gio::DBus::Connection>&; T_arg2 = Glib::ustring] (struct slot * const this, const struct slot & src)
{
  struct slot2 * D.101895;

  D.101895 = &this->D.100817;
  sigc::slot2<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::slot2 (D.101895, src);
  try
    {

    }
  catch
    {
      D.101895 = &this->D.100817;
      sigc::slot2<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::~slot2 (D.101895);
    }
}


sigc::slot2<T_return, T_arg1, T_arg2>::slot2(const sigc::slot2<T_return, T_arg1, T_arg2>&) [with T_return = void; T_arg1 = const Glib::RefPtr<Gio::DBus::Connection>&; T_arg2 = Glib::ustring] (struct slot2 * const this, const struct slot2 & src)
{
  const struct slot_base * D.101896;
  struct slot_base * D.101897;

  D.101896 = &src->D.100775;
  D.101897 = &this->D.100775;
  sigc::slot_base::slot_base (D.101897, D.101896);
  try
    {

    }
  catch
    {
      D.101897 = &this->D.100775;
      sigc::slot_base::~slot_base (D.101897);
    }
}


guint Gio::DBus::watch_name(const Glib::RefPtr<Gio::DBus::Connection>&, const Glib::ustring&, const SlotNameAppeared&, const SlotNameVanished&, Gio::DBus::BusNameWatcherFlags) (const struct RefPtr & connection, const struct ustring & name, const struct SlotNameAppeared & name_appeared_slot, const struct SlotNameVanished & name_vanished_slot, BusNameWatcherFlags flags)
{
  void * D.101054;
  void * D.101055;
  guint D.101898;
  const char * D.101899;
  struct BaseObjectType * D.101900;
  struct WatchSlots * slots;

  slots = operator new (16);
  D.101054 = operator new (16);
  try
    {
      sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&>::slot (D.101054, name_appeared_slot);
    }
  catch
    {
      operator delete (D.101054);
    }
  slots->name_appeared_slot = D.101054;
  D.101055 = operator new (16);
  try
    {
      sigc::slot<void, const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring>::slot (D.101055, name_vanished_slot);
    }
  catch
    {
      operator delete (D.101055);
    }
  slots->name_vanished_slot = D.101055;
  D.101899 = Glib::ustring::c_str (name);
  D.101900 = Glib::unwrap<Gio::DBus::Connection> (connection);
  D.101898 = g_bus_watch_name_on_connection (D.101900, D.101899, flags, Bus_Name_Appeared_giomm_callback, Bus_Name_Vanished_giomm_callback, slots, Bus_Watch_Name_giomm_callback_destroy);
  return D.101898;
}


typename T::BaseObjectType* Glib::unwrap(const Glib::RefPtr<T_CppObject>&) [with T = Gio::DBus::Connection; typename T::BaseObjectType = _GDBusConnection] (const struct RefPtr & ptr)
{
  struct BaseObjectType * D.101910;
  struct BaseObjectType * iftmp.5;
  bool D.101912;
  struct Connection * D.101915;

  D.101912 = Glib::RefPtr<Gio::DBus::Connection>::operator bool (ptr);
  if (D.101912 != 0) goto <D.101913>; else goto <D.101914>;
  <D.101913>:
  D.101915 = Glib::RefPtr<Gio::DBus::Connection>::operator-> (ptr);
  iftmp.5 = Gio::DBus::Connection::gobj (D.101915);
  goto <D.101916>;
  <D.101914>:
  iftmp.5 = 0B;
  <D.101916>:
  D.101910 = iftmp.5;
  return D.101910;
}


Glib::RefPtr<T_CppObject>::operator bool() const [with T_CppObject = Gio::DBus::Connection] (const struct RefPtr * const this)
{
  bool D.101918;
  struct Connection * D.101919;

  D.101919 = this->pCppObject_;
  D.101918 = D.101919 != 0B;
  return D.101918;
}


T_CppObject* Glib::RefPtr<T_CppObject>::operator->() const [with T_CppObject = Gio::DBus::Connection] (const struct RefPtr * const this)
{
  struct Connection * D.101921;

  D.101921 = this->pCppObject_;
  return D.101921;
}


GDBusConnection* Gio::DBus::Connection::gobj() (struct Connection * const this)
{
  struct GDBusConnection * D.101923;
  int (*__vtbl_ptr_type) () * D.101924;
  int (*__vtbl_ptr_type) () * D.101925;
  long int D.101926;
  sizetype D.101927;
  struct ObjectBase * D.101928;

  D.101924 = this->D.100492._vptr.Object;
  D.101925 = D.101924 + 18446744073709551592;
  D.101926 = MEM[(long int *)D.101925];
  D.101927 = (sizetype) D.101926;
  D.101928 = this + D.101927;
  D.101923 = D.101928->gobject_;
  return D.101923;
}


void Gio::DBus::unwatch_name(guint) (guint watcher_id)
{
  g_bus_unwatch_name (watcher_id);
}


