// Generated by gtkmmproc -- DO NOT MODIFY!


#include <giomm/dbusintrospection.h>
#include <giomm/private/dbusintrospection_p.h>

// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-

/* Copyright (C) 2010 The giomm Development Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

namespace Gio
{

} // namespace Gio

namespace
{
} // anonymous namespace


/* Why reinterpret_cast<DBusAnnotationInfo*>(gobject) is needed:
 *
 * A DBusAnnotationInfo instance is in fact always a GDBusAnnotationInfo instance.
 * Unfortunately, GDBusAnnotationInfo cannot be a member of DBusAnnotationInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusAnnotationInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusAnnotationInfo> wrap(GDBusAnnotationInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_annotation_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusAnnotationInfo>(reinterpret_cast<Gio::DBusAnnotationInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusAnnotationInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_annotation_info_ref(reinterpret_cast<GDBusAnnotationInfo*>(const_cast<DBusAnnotationInfo*>(this)));
}

void DBusAnnotationInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_annotation_info_unref(reinterpret_cast<GDBusAnnotationInfo*>(const_cast<DBusAnnotationInfo*>(this)));
}

GDBusAnnotationInfo* DBusAnnotationInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusAnnotationInfo*>(this);
}

const GDBusAnnotationInfo* DBusAnnotationInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusAnnotationInfo*>(this);
}

GDBusAnnotationInfo* DBusAnnotationInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusAnnotationInfo *const gobject = reinterpret_cast<GDBusAnnotationInfo*>(const_cast<DBusAnnotationInfo*>(this));
  g_dbus_annotation_info_ref(gobject);
  return gobject;
}


Glib::ustring DBusAnnotationInfo::info_lookup(const Glib::ArrayHandle< Glib::RefPtr<DBusAnnotationInfo> >& annotations, const Glib::ustring& name)
{
  return Glib::convert_const_gchar_ptr_to_ustring(g_dbus_annotation_info_lookup(const_cast<GDBusAnnotationInfo**>(annotations.data()), name.c_str()));
}


} // namespace Gio


/* Why reinterpret_cast<DBusArgInfo*>(gobject) is needed:
 *
 * A DBusArgInfo instance is in fact always a GDBusArgInfo instance.
 * Unfortunately, GDBusArgInfo cannot be a member of DBusArgInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusArgInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusArgInfo> wrap(GDBusArgInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_arg_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusArgInfo>(reinterpret_cast<Gio::DBusArgInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusArgInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_arg_info_ref(reinterpret_cast<GDBusArgInfo*>(const_cast<DBusArgInfo*>(this)));
}

void DBusArgInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_arg_info_unref(reinterpret_cast<GDBusArgInfo*>(const_cast<DBusArgInfo*>(this)));
}

GDBusArgInfo* DBusArgInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusArgInfo*>(this);
}

const GDBusArgInfo* DBusArgInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusArgInfo*>(this);
}

GDBusArgInfo* DBusArgInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusArgInfo *const gobject = reinterpret_cast<GDBusArgInfo*>(const_cast<DBusArgInfo*>(this));
  g_dbus_arg_info_ref(gobject);
  return gobject;
}


} // namespace Gio


/* Why reinterpret_cast<DBusMethodInfo*>(gobject) is needed:
 *
 * A DBusMethodInfo instance is in fact always a GDBusMethodInfo instance.
 * Unfortunately, GDBusMethodInfo cannot be a member of DBusMethodInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusMethodInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusMethodInfo> wrap(GDBusMethodInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_method_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusMethodInfo>(reinterpret_cast<Gio::DBusMethodInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusMethodInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_method_info_ref(reinterpret_cast<GDBusMethodInfo*>(const_cast<DBusMethodInfo*>(this)));
}

void DBusMethodInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_method_info_unref(reinterpret_cast<GDBusMethodInfo*>(const_cast<DBusMethodInfo*>(this)));
}

GDBusMethodInfo* DBusMethodInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusMethodInfo*>(this);
}

const GDBusMethodInfo* DBusMethodInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusMethodInfo*>(this);
}

GDBusMethodInfo* DBusMethodInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusMethodInfo *const gobject = reinterpret_cast<GDBusMethodInfo*>(const_cast<DBusMethodInfo*>(this));
  g_dbus_method_info_ref(gobject);
  return gobject;
}


} // namespace Gio


/* Why reinterpret_cast<DBusSignalInfo*>(gobject) is needed:
 *
 * A DBusSignalInfo instance is in fact always a GDBusSignalInfo instance.
 * Unfortunately, GDBusSignalInfo cannot be a member of DBusSignalInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusSignalInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusSignalInfo> wrap(GDBusSignalInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_signal_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusSignalInfo>(reinterpret_cast<Gio::DBusSignalInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusSignalInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_signal_info_ref(reinterpret_cast<GDBusSignalInfo*>(const_cast<DBusSignalInfo*>(this)));
}

void DBusSignalInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_signal_info_unref(reinterpret_cast<GDBusSignalInfo*>(const_cast<DBusSignalInfo*>(this)));
}

GDBusSignalInfo* DBusSignalInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusSignalInfo*>(this);
}

const GDBusSignalInfo* DBusSignalInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusSignalInfo*>(this);
}

GDBusSignalInfo* DBusSignalInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusSignalInfo *const gobject = reinterpret_cast<GDBusSignalInfo*>(const_cast<DBusSignalInfo*>(this));
  g_dbus_signal_info_ref(gobject);
  return gobject;
}


} // namespace Gio


/* Why reinterpret_cast<DBusPropertyInfo*>(gobject) is needed:
 *
 * A DBusPropertyInfo instance is in fact always a GDBusPropertyInfo instance.
 * Unfortunately, GDBusPropertyInfo cannot be a member of DBusPropertyInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusPropertyInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusPropertyInfo> wrap(GDBusPropertyInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_property_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusPropertyInfo>(reinterpret_cast<Gio::DBusPropertyInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusPropertyInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_property_info_ref(reinterpret_cast<GDBusPropertyInfo*>(const_cast<DBusPropertyInfo*>(this)));
}

void DBusPropertyInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_property_info_unref(reinterpret_cast<GDBusPropertyInfo*>(const_cast<DBusPropertyInfo*>(this)));
}

GDBusPropertyInfo* DBusPropertyInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusPropertyInfo*>(this);
}

const GDBusPropertyInfo* DBusPropertyInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusPropertyInfo*>(this);
}

GDBusPropertyInfo* DBusPropertyInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusPropertyInfo *const gobject = reinterpret_cast<GDBusPropertyInfo*>(const_cast<DBusPropertyInfo*>(this));
  g_dbus_property_info_ref(gobject);
  return gobject;
}


} // namespace Gio


/* Why reinterpret_cast<DBusInterfaceInfo*>(gobject) is needed:
 *
 * A DBusInterfaceInfo instance is in fact always a GDBusInterfaceInfo instance.
 * Unfortunately, GDBusInterfaceInfo cannot be a member of DBusInterfaceInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusInterfaceInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusInterfaceInfo> wrap(GDBusInterfaceInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_interface_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusInterfaceInfo>(reinterpret_cast<Gio::DBusInterfaceInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusInterfaceInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_interface_info_ref(reinterpret_cast<GDBusInterfaceInfo*>(const_cast<DBusInterfaceInfo*>(this)));
}

void DBusInterfaceInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_interface_info_unref(reinterpret_cast<GDBusInterfaceInfo*>(const_cast<DBusInterfaceInfo*>(this)));
}

GDBusInterfaceInfo* DBusInterfaceInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusInterfaceInfo*>(this);
}

const GDBusInterfaceInfo* DBusInterfaceInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusInterfaceInfo*>(this);
}

GDBusInterfaceInfo* DBusInterfaceInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusInterfaceInfo *const gobject = reinterpret_cast<GDBusInterfaceInfo*>(const_cast<DBusInterfaceInfo*>(this));
  g_dbus_interface_info_ref(gobject);
  return gobject;
}

Glib::RefPtr<DBusMethodInfo> DBusInterfaceInfo::lookup_method(const Glib::ustring& name)
{
  return Glib::wrap(g_dbus_interface_info_lookup_method(gobj(), name.c_str()));
}

Glib::RefPtr<const DBusMethodInfo> DBusInterfaceInfo::lookup_method(const Glib::ustring& name) const
{
  return const_cast<DBusInterfaceInfo*>(this)->lookup_method(name);
}

Glib::RefPtr<DBusSignalInfo> DBusInterfaceInfo::lookup_signal(const Glib::ustring& name)
{
  return Glib::wrap(g_dbus_interface_info_lookup_signal(gobj(), name.c_str()));
}

Glib::RefPtr<const DBusSignalInfo> DBusInterfaceInfo::lookup_signal(const Glib::ustring& name) const
{
  return const_cast<DBusInterfaceInfo*>(this)->lookup_signal(name);
}

Glib::RefPtr<DBusPropertyInfo> DBusInterfaceInfo::lookup_property(const Glib::ustring& name)
{
  return Glib::wrap(g_dbus_interface_info_lookup_property(gobj(), name.c_str()));
}

Glib::RefPtr<const DBusPropertyInfo> DBusInterfaceInfo::lookup_property(const Glib::ustring& name) const
{
  return const_cast<DBusInterfaceInfo*>(this)->lookup_property(name);
}


} // namespace Gio


/* Why reinterpret_cast<DBusNodeInfo*>(gobject) is needed:
 *
 * A DBusNodeInfo instance is in fact always a GDBusNodeInfo instance.
 * Unfortunately, GDBusNodeInfo cannot be a member of DBusNodeInfo,
 * because it is an opaque struct.  Also, the C interface does not provide
 * any hooks to install a destroy notification handler, thus we cannot
 * wrap it dynamically either.
 *
 * The cast works because DBusNodeInfo does not have any member data, and
 * it is impossible to derive from it.  This is ensured by not implementing
 * the (protected) default constructor.  The ctor is protected rather than
 * private just to avoid a compile warning.
 */

namespace Glib
{

Glib::RefPtr<Gio::DBusNodeInfo> wrap(GDBusNodeInfo* object, bool take_copy)
{
  if(take_copy && object)
    g_dbus_node_info_ref(object);

  // See the comment at the top of this file, if you want to know why the cast works.
  return Glib::RefPtr<Gio::DBusNodeInfo>(reinterpret_cast<Gio::DBusNodeInfo*>(object));
}

} // namespace Glib


namespace Gio
{


void DBusNodeInfo::reference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_node_info_ref(reinterpret_cast<GDBusNodeInfo*>(const_cast<DBusNodeInfo*>(this)));
}

void DBusNodeInfo::unreference() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  g_dbus_node_info_unref(reinterpret_cast<GDBusNodeInfo*>(const_cast<DBusNodeInfo*>(this)));
}

GDBusNodeInfo* DBusNodeInfo::gobj()
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<GDBusNodeInfo*>(this);
}

const GDBusNodeInfo* DBusNodeInfo::gobj() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  return reinterpret_cast<const GDBusNodeInfo*>(this);
}

GDBusNodeInfo* DBusNodeInfo::gobj_copy() const
{
  // See the comment at the top of this file, if you want to know why the cast works.
  GDBusNodeInfo *const gobject = reinterpret_cast<GDBusNodeInfo*>(const_cast<DBusNodeInfo*>(this));
  g_dbus_node_info_ref(gobject);
  return gobject;
}

Glib::RefPtr<DBusNodeInfo> DBusNodeInfo::create_for_xml(const Glib::ustring& xml_data)
{
  GError* gerror = 0;
  Glib::RefPtr<DBusNodeInfo> retvalue = Glib::wrap(g_dbus_node_info_new_for_xml(xml_data.c_str(), &(gerror)));

  if(gerror)
    ::Glib::Error::throw_exception(gerror);

  return retvalue;
}


Glib::RefPtr<DBusInterfaceInfo> DBusNodeInfo::lookup_interface(const Glib::ustring& name)
{
  return Glib::wrap(g_dbus_node_info_lookup_interface(gobj(), name.c_str()));
}

Glib::RefPtr<const DBusInterfaceInfo> DBusNodeInfo::lookup_interface(const Glib::ustring& name) const
{
  return const_cast<DBusNodeInfo*>(this)->lookup_interface(name);
}


} // namespace Gio


