<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="LibvirtGConfig" version="1.0"/>
  <include name="LibvirtGLib" version="1.0"/>
  <package name="libvirt-gobject-1.0"/>
  <c:include name="libvirt-gobject/libvirt-gobject.h"/>
  <namespace name="LibvirtGObject"
             version="1.0"
             shared-library="libvirt-glib-1.0.so.0,libvirt-gconfig-1.0.so.0,libvirt-gobject-1.0.so.0"
             c:identifier-prefixes="GVir"
             c:symbol-prefixes="gvir">
    <class name="Connection"
           c:symbol-prefix="connection"
           c:type="GVirConnection"
           parent="GObject.Object"
           glib:type-name="GVirConnection"
           glib:get-type="gvir_connection_get_type"
           glib:type-struct="ConnectionClass">
      <constructor name="new" c:identifier="gvir_connection_new">
        <return-value transfer-ownership="full">
          <type name="Connection" c:type="GVirConnection*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="connection_closed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="connection_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="domain_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="domain_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stream_new" introspectable="0">
        <return-value>
          <type name="Stream" c:type="GVirStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="close" c:identifier="gvir_connection_close">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_domain"
              c:identifier="gvir_connection_create_domain"
              throws="1">
        <doc xml:space="preserve">Create the configuration file for a new persistent domain.
The returned domain will initially be in the shutoff state.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the newly created domain, or NULL if an error
occurred. The returned object should be unreffed with g_object_unref()
when no longer needed.</doc>
          <type name="Domain" c:type="GVirDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection on which to create the domain</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="conf" transfer-ownership="none">
            <doc xml:space="preserve">the configuration for the new domain</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_storage_pool"
              c:identifier="gvir_connection_create_storage_pool"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the newly created storage pool, or NULL if an
error occurred. The returned list should be freed with g_list_free(),
after its elements have been unreffed with g_object_unref().</doc>
          <type name="StoragePool" c:type="GVirStoragePool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection on which to create the pool</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="conf" transfer-ownership="none">
            <doc xml:space="preserve">the configuration for the new storage pool</doc>
            <type name="LibvirtGConfig.StoragePool"
                  c:type="GVirConfigStoragePool*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_domains"
              c:identifier="gvir_connection_fetch_domains"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_domains_async"
              c:identifier="gvir_connection_fetch_domains_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_domains_finish"
              c:identifier="gvir_connection_fetch_domains_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_interfaces"
              c:identifier="gvir_connection_fetch_interfaces"
              throws="1">
        <doc xml:space="preserve">Use this method to fetch information on all network interfaces
managed by connection @conn on host machine. Use
#gvir_connection_get_interfaces or #gvir_connection_get_interface afterwards
to query the fetched interfaces.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise and @err is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_interfaces_async"
              c:identifier="gvir_connection_fetch_interfaces_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_interfaces_finish"
              c:identifier="gvir_connection_fetch_interfaces_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_networks"
              c:identifier="gvir_connection_fetch_networks"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_networks_async"
              c:identifier="gvir_connection_fetch_networks_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_networks_finish"
              c:identifier="gvir_connection_fetch_networks_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_storage_pools"
              c:identifier="gvir_connection_fetch_storage_pools"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_storage_pools_async"
              c:identifier="gvir_connection_fetch_storage_pools_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_storage_pools_finish"
              c:identifier="gvir_connection_fetch_storage_pools_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_domain_by_id"
              c:identifier="gvir_connection_find_domain_by_id">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GVirDomain, or NULL. The returned
object should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="Domain" c:type="GVirDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">id of the requested domain</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_domain_by_name"
              c:identifier="gvir_connection_find_domain_by_name">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GVirDomain, or NULL. The returned
object should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="Domain" c:type="GVirDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">name of the requested domain</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_interface_by_mac"
              c:identifier="gvir_connection_find_interface_by_mac">
        <doc xml:space="preserve">Get a particular interface which has MAC address @mac.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new reference to a #GVirInterface, or NULL
if no interface exists with MAC address @mac. The returned object must be
unreffed using g_object_unref() once used.</doc>
          <type name="Interface" c:type="GVirInterface*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="macaddr" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_network_by_name"
              c:identifier="gvir_connection_find_network_by_name">
        <doc xml:space="preserve">Get a particular network which has name @name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new reference to a #GVirNetwork, or NULL if
no network exists with name @name. The returned object must be unreffed using
g_object_unref() once used.</doc>
          <type name="Network" c:type="GVirNetwork*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">name of the network to search for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_storage_pool_by_name"
              c:identifier="gvir_connection_find_storage_pool_by_name">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GVirStoragePool, or NULL. The returned
object should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="StoragePool" c:type="GVirStoragePool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">name of the requested storage pool</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_capabilities"
              c:identifier="gvir_connection_get_capabilities"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GVirConfigCapabilities or NULL.  The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="LibvirtGConfig.Capabilities"
                c:type="GVirConfigCapabilities*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_capabilities_async"
              c:identifier="gvir_connection_get_capabilities_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_capabilities_finish"
              c:identifier="gvir_connection_get_capabilities_finish"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GVirConfigCapabilities or NULL. The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="LibvirtGConfig.Capabilities"
                c:type="GVirConfigCapabilities*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_domain" c:identifier="gvir_connection_get_domain">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GVirDomain, or NULL. The returned
object should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="Domain" c:type="GVirDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="uuid" transfer-ownership="none">
            <doc xml:space="preserve">uuid string of the requested domain</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_domains" c:identifier="gvir_connection_get_domains">
        <doc xml:space="preserve">Gets a list of the domains available through @conn.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">List
of #GVirDomain. The returned list should be freed with g_list_free(),
after its elements have been unreffed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Domain"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hypervisor_name"
              c:identifier="gvir_connection_get_hypervisor_name"
              throws="1">
        <doc xml:space="preserve">Get name of current hypervisor used.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">new string that should be freed when no longer needed,
or NULL upon error.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_interface"
              c:identifier="gvir_connection_get_interface">
        <doc xml:space="preserve">Get a particular interface which has name @name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new reference to a #GVirInterface, or NULL
if no interface exists with name @name. The returned object must be unreffed
using g_object_unref() once used.</doc>
          <type name="Interface" c:type="GVirInterface*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">interface name to lookup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_interfaces"
              c:identifier="gvir_connection_get_interfaces">
        <doc xml:space="preserve">Get a list of all the network interfaces managed by connection @conn on
host machine.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">List
of #GVirInterface. The returned list should be freed with g_list_free(),
after its elements have been unreffed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Interface"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_network" c:identifier="gvir_connection_get_network">
        <doc xml:space="preserve">Get a particular network which has UUID @uuid.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new reference to a #GVirNetwork, or NULL if
no network exists with UUID @uuid. The returned object must be unreffed using
g_object_unref() once used.</doc>
          <type name="Network" c:type="GVirNetwork*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="uuid" transfer-ownership="none">
            <doc xml:space="preserve">UUID of the network to lookup</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_networks" c:identifier="gvir_connection_get_networks">
        <doc xml:space="preserve">Get a list of all the network networks available through @conn.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">List
of #GVirNetwork. The returned list should be freed with g_list_free(),
after its elements have been unreffed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Network"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_node_info"
              c:identifier="gvir_connection_get_node_info"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the info, or NULL if an error occurred. The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="NodeInfo" c:type="GVirNodeInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_storage_pool"
              c:identifier="gvir_connection_get_storage_pool">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GVirStoragePool, or NULL. The returned
object should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="StoragePool" c:type="GVirStoragePool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="uuid" transfer-ownership="none">
            <doc xml:space="preserve">uuid string of the requested storage pool</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_storage_pools"
              c:identifier="gvir_connection_get_storage_pools">
        <doc xml:space="preserve">Gets a list of the storage pools available through @conn.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">List
of #GVirStoragePool. The returned list should be freed with
g_list_free(), after its elements have been unreffed with
g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="StoragePool"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream" c:identifier="gvir_connection_get_stream">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GVirStream stream, or NULL.The returned
object should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="Stream" c:type="GVirStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags to use for the stream</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="gvir_connection_get_uri">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="gvir_connection_get_version"
              throws="1">
        <doc xml:space="preserve">Get version of current hypervisor used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">version on success, 0 otherwise and @err set.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_open" c:identifier="gvir_connection_is_open">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_read_only" c:identifier="gvir_connection_is_read_only">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="gvir_connection_open" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_async" c:identifier="gvir_connection_open_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_finish"
              c:identifier="gvir_connection_open_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_read_only"
              c:identifier="gvir_connection_open_read_only"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_read_only_async"
              c:identifier="gvir_connection_open_read_only_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_read_only_finish"
              c:identifier="gvir_connection_open_read_only_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_domain_from_file"
              c:identifier="gvir_connection_restore_domain_from_file"
              throws="1">
        <doc xml:space="preserve">Restores the domain saved with #gvir_domain_save_to_file</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">path to input file</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom_conf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">configuration for domain or NULL</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_domain_from_file_async"
              c:identifier="gvir_connection_restore_domain_from_file_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_connection_restore_domain_from_file</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">path to input file</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom_conf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">configuration for domain</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_domain_from_file_finish"
              c:identifier="gvir_connection_restore_domain_from_file_finish"
              throws="1">
        <doc xml:space="preserve">Finishes the operation started by #gvir_restore_domain_from_file_async.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if domain was restored successfully, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_domain"
              c:identifier="gvir_connection_start_domain"
              throws="1">
        <doc xml:space="preserve">Start a new transient domain without persistent configuration.
The returned domain will initially be running.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the newly created domain, or NULL if an error
occurred. The returned object should be unreffed with g_object_unref()
when no longer needed.</doc>
          <type name="Domain" c:type="GVirDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="conn" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirConnection on which to create the domain</doc>
            <type name="Connection" c:type="GVirConnection*"/>
          </instance-parameter>
          <parameter name="conf" transfer-ownership="none">
            <doc xml:space="preserve">the configuration for the new domain</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="ConnectionHandle"/>
      </property>
      <property name="uri"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ConnectionPrivate" c:type="GVirConnectionPrivate*"/>
      </field>
      <glib:signal name="connection-closed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="connection-opened" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="domain-added" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Domain"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="domain-removed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Domain"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ConnectionClass"
            c:type="GVirConnectionClass"
            glib:is-gtype-struct-for="Connection">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="connection_opened">
        <callback name="connection_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="connection_closed">
        <callback name="connection_closed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="domain_added">
        <callback name="domain_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="domain_removed">
        <callback name="domain_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stream_new" introspectable="0">
        <callback name="stream_new" introspectable="0">
          <return-value>
            <type name="Stream" c:type="GVirStream*"/>
          </return-value>
          <parameters>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
            <parameter name="handle" transfer-ownership="none">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="ConnectionHandle"
                c:symbol-prefix="connection_handle"
                glib:type-name="GVirConnectionHandle"
                glib:get-type="gvir_connection_handle_get_type">
    </glib:boxed>
    <record name="ConnectionPrivate"
            c:type="GVirConnectionPrivate"
            disguised="1">
    </record>
    <class name="Domain"
           c:symbol-prefix="domain"
           c:type="GVirDomain"
           parent="GObject.Object"
           glib:type-name="GVirDomain"
           glib:get-type="gvir_domain_get_type"
           glib:type-struct="DomainClass">
      <virtual-method name="pmsuspended">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="resumed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="started">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="suspended">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="create_snapshot"
              c:identifier="gvir_domain_create_snapshot"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">snapshot of domain. The returned object should be
unreffed when no longer needed</doc>
          <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="custom_conf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">configuration of snapshot or NULL</doc>
            <type name="LibvirtGConfig.DomainSnapshot"
                  c:type="GVirConfigDomainSnapshot*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">bitwise-OR of #GVirDomainSnapshotCreateFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_snapshot_async"
              c:identifier="gvir_domain_create_snapshot_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">The #GVirDomain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="custom_conf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Configuration of snapshot or %NULL</doc>
            <type name="LibvirtGConfig.DomainSnapshot"
                  c:type="GVirConfigDomainSnapshot*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Bitwise-OR of #GVirDomainSnapshotCreateFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">Completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">Opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_snapshot_finish"
              c:identifier="gvir_domain_create_snapshot_finish"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The created snapshot</doc>
          <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
        </return-value>
        <parameters>
          <instance-parameter name="domain" transfer-ownership="none">
            <doc xml:space="preserve">A #GVirDomain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">Async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete" c:identifier="gvir_domain_delete" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_snapshots"
              c:identifier="gvir_domain_fetch_snapshots"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">The domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="list_flags" transfer-ownership="none">
            <doc xml:space="preserve">bitwise-OR of #GVirDomainSnapshotListFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_snapshots_async"
              c:identifier="gvir_domain_fetch_snapshots_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">The domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="list_flags" transfer-ownership="none">
            <doc xml:space="preserve">bitwise-OR of #GVirDomainSnapshotListFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_snapshots_finish"
              c:identifier="gvir_domain_fetch_snapshots_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirDomain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config"
              c:identifier="gvir_domain_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the %GVirDomainXMLFlags flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices"
              c:identifier="gvir_domain_get_devices"
              throws="1">
        <doc xml:space="preserve">Gets the list of devices attached to @domain. The returned list should
be freed with g_list_free(), after its elements have been unreffed with
g_object_unref().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly
allocated #GList of #GVirDomainDevice.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DomainDevice"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="domain" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_current_snapshot"
              c:identifier="gvir_domain_get_has_current_snapshot"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">a #GVirDomain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Unused, pass 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="has_current_snapshot"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">Will be set to %TRUE if the given domain
has a current snapshot and to %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gvir_domain_get_id" throws="1">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_info" c:identifier="gvir_domain_get_info" throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the info. The returned structure should be
freed using #g_boxed_free() with GVIR_TYPE_DOMAIN_INFO as the first argument
when no longer needed.</doc>
          <type name="DomainInfo" c:type="GVirDomainInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_info_async" c:identifier="gvir_domain_get_info_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_domain_get_info.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info_finish"
              c:identifier="gvir_domain_get_info_finish"
              throws="1">
        <doc xml:space="preserve">Finishes the operation started by #gvir_domain_get_info_async.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the info. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="DomainInfo" c:type="GVirDomainInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_domain_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_persistent" c:identifier="gvir_domain_get_persistent">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if domain is persistent, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_saved" c:identifier="gvir_domain_get_saved">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if a stopped domain has a saved state to which it can be
restored to using #gvir_domain_start, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_snapshots" c:identifier="gvir_domain_get_snapshots">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A
list of all the snapshots available for the given domain. The returned
list should be freed with g_list_free(), after its elements have been
unreffed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DomainSnapshot"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">The domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uuid" c:identifier="gvir_domain_get_uuid">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open_console"
              c:identifier="gvir_domain_open_console"
              throws="1">
        <doc xml:space="preserve">Open a text console for the domain @dom, connecting it to the
stream @stream. If @devname is NULL, the default console will
be opened, otherwise @devname can be used to specify a non-default
console device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the console was opened, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">stream to use as output</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </parameter>
          <parameter name="devname"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the device name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, currently unused</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_graphics"
              c:identifier="gvir_domain_open_graphics"
              throws="1">
        <doc xml:space="preserve">Open a connection to the local graphics display, connecting it to the
socket pair file descriptor passed in as @fd.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the graphics connection was opened, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the graphics index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve">pre-opened socket pair</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, currently unused</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_graphics_fd"
              c:identifier="gvir_domain_open_graphics_fd"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve">This will create a socket pair connected to the graphics backend of @dom. One
end of the socket will be returned on success, and the other end is handed to
the hypervisor. If @dom has multiple graphics backends configured, then @idx
will determine which one is opened, starting from @idx 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An fd on success, -1 on failure.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve">the graphics index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, currently unused</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="reboot" c:identifier="gvir_domain_reboot" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the %GVirDomainRebootFlags flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="resume" c:identifier="gvir_domain_resume" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="resume_async" c:identifier="gvir_domain_resume_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_domain_resume.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to resume</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="resume_finish"
              c:identifier="gvir_domain_resume_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="gvir_domain_save" throws="1">
        <doc xml:space="preserve">Saves the state of the domain on disk and stops it. Use #gvir_domain_start
to restore the saved state of the domain. A saved domain can be restored
even after shutdown/reboot of host machine.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if domain was saved successfully, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to save</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, currently unused</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_async" c:identifier="gvir_domain_save_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_domain_save.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to save</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, currently unused</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_finish"
              c:identifier="gvir_domain_save_finish"
              throws="1">
        <doc xml:space="preserve">Finishes the operation started by #gvir_domain_save_async.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if domain was saved successfully, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to save</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_file"
              c:identifier="gvir_domain_save_to_file"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">path to the output file</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom_conf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">configuration for domain or NULL</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_file_async"
              c:identifier="gvir_domain_save_to_file_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_domain_save_to_file</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">path to output file</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="custom_conf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">configuration for domain or NULL</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancallation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_file_finish"
              c:identifier="gvir_domain_save_to_file_finish"
              throws="1">
        <doc xml:space="preserve">Finishes the operation started by #gvir_domain_save_to_file_async.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if domain was saved successfully, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to save</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="screenshot"
              c:identifier="gvir_domain_screenshot"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated string containing the
mime-type of the image format, or NULL upon error.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">stream to use as output</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </parameter>
          <parameter name="monitor_id" transfer-ownership="none">
            <doc xml:space="preserve">monitor ID to take screenshot from</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, currently unused</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_config"
              c:identifier="gvir_domain_set_config"
              throws="1">
        <doc xml:space="preserve">Resets configuration of an existing domain.

Note: If domain is already running, the new configuration will not take
affect until domain reboots.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success, FALSE if an error occurred.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="domain" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="conf" transfer-ownership="none">
            <doc xml:space="preserve">the new configuration for the domain</doc>
            <type name="LibvirtGConfig.Domain" c:type="GVirConfigDomain*"/>
          </parameter>
        </parameters>
      </method>
      <method name="shutdown" c:identifier="gvir_domain_shutdown" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the %GVirDomainShutdownFlags flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="gvir_domain_start" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_async" c:identifier="gvir_domain_start_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_domain_start.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_finish"
              c:identifier="gvir_domain_start_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gvir_domain_stop" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="suspend" c:identifier="gvir_domain_suspend" throws="1">
        <doc xml:space="preserve">Suspends an active domain, the process is frozen without further access to
CPU resources and I/O but the memory used by the domain at the hypervisor
level will stay allocated. Use gvir_domain_resume() to reactivate the domain.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if domain was suspended successfully, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to suspend</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_device"
              c:identifier="gvir_domain_update_device"
              throws="1">
        <doc xml:space="preserve">Update the configuration of a device.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if device was updated successfully, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A modified device config</doc>
            <type name="LibvirtGConfig.DomainDevice"
                  c:type="GVirConfigDomainDevice*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">bitwise-OR of #GVirDomainUpdateDeviceFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="wakeup" c:identifier="gvir_domain_wakeup" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">placeholder for flags, pass 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="wakeup_async" c:identifier="gvir_domain_wakeup_async">
        <doc xml:space="preserve">Asynchronous variant of #gvir_domain_wakeup.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <doc xml:space="preserve">the domain to wakeup</doc>
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">placeholder for flags, pass 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="wakeup_finish"
              c:identifier="gvir_domain_wakeup_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dom" transfer-ownership="none">
            <type name="Domain" c:type="GVirDomain*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="DomainHandle"/>
      </property>
      <property name="persistent" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DomainPrivate" c:type="GVirDomainPrivate*"/>
      </field>
      <glib:signal name="pmsuspended"
                   when="last"
                   no-recurse="1"
                   detailed="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="resumed"
                   when="last"
                   no-recurse="1"
                   detailed="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="started"
                   when="last"
                   no-recurse="1"
                   detailed="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="stopped"
                   when="last"
                   no-recurse="1"
                   detailed="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="suspended"
                   when="last"
                   no-recurse="1"
                   detailed="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="updated" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DomainClass"
            c:type="GVirDomainClass"
            glib:is-gtype-struct-for="Domain">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="started">
        <callback name="started">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stopped">
        <callback name="stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="resumed">
        <callback name="resumed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="updated">
        <callback name="updated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="suspended">
        <callback name="suspended">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pmsuspended">
        <callback name="pmsuspended">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dom" transfer-ownership="none">
              <type name="Domain" c:type="GVirDomain*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="19">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="DomainDeleteFlags"
                 glib:type-name="GVirDomainDeleteFlags"
                 glib:get-type="gvir_domain_delete_flags_get_type"
                 c:type="GVirDomainDeleteFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_DELETE_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags</doc>
      </member>
      <member name="saved_state"
              value="1"
              c:identifier="GVIR_DOMAIN_DELETE_SAVED_STATE"
              glib:nick="saved-state">
        <doc xml:space="preserve">Also remove associated saved state (if present).</doc>
      </member>
      <member name="snapshots_metadata"
              value="2"
              c:identifier="GVIR_DOMAIN_DELETE_SNAPSHOTS_METADATA"
              glib:nick="snapshots-metadata">
        <doc xml:space="preserve">If last use of domain, then also
                                        remove any snapshot metadata.</doc>
      </member>
    </enumeration>
    <class name="DomainDevice"
           c:symbol-prefix="domain_device"
           c:type="GVirDomainDevice"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GVirDomainDevice"
           glib:get-type="gvir_domain_device_get_type"
           glib:type-struct="DomainDeviceClass">
      <method name="get_config" c:identifier="gvir_domain_device_get_config">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.DomainDevice"
                c:type="GVirConfigDomainDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">the domain device</doc>
            <type name="DomainDevice" c:type="GVirDomainDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_domain" c:identifier="gvir_domain_device_get_domain">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the associated domain. The returned object
should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="Domain" c:type="GVirDomain*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">the domain device</doc>
            <type name="DomainDevice" c:type="GVirDomainDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="config"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="LibvirtGConfig.DomainDevice"/>
      </property>
      <property name="domain"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Domain"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DomainDevicePrivate" c:type="GVirDomainDevicePrivate*"/>
      </field>
    </class>
    <record name="DomainDeviceClass"
            c:type="GVirDomainDeviceClass"
            glib:is-gtype-struct-for="DomainDevice">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="DomainDevicePrivate"
            c:type="GVirDomainDevicePrivate"
            disguised="1">
    </record>
    <class name="DomainDisk"
           c:symbol-prefix="domain_disk"
           c:type="GVirDomainDisk"
           parent="DomainDevice"
           glib:type-name="GVirDomainDisk"
           glib:get-type="gvir_domain_disk_get_type"
           glib:type-struct="DomainDiskClass">
      <method name="get_stats"
              c:identifier="gvir_domain_disk_get_stats"
              throws="1">
        <doc xml:space="preserve">This function returns network disk stats. Individual fields
within the stats structure may be returned as -1, which indicates
that the hypervisor does not support that particular statistic.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the stats or %NULL in case of error.The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="DomainDiskStats" c:type="GVirDomainDiskStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the domain disk</doc>
            <type name="DomainDisk" c:type="GVirDomainDisk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="resize" c:identifier="gvir_domain_disk_resize" throws="1">
        <doc xml:space="preserve">This function resize the disk of a running domain.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if size was successfully changed, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the domain disk</doc>
            <type name="DomainDisk" c:type="GVirDomainDisk*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">new size of the block image in kilobytes</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags, currently unused. Pass '0'.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="DomainDevice" c:type="GVirDomainDevice"/>
      </field>
      <field name="priv">
        <type name="DomainDiskPrivate" c:type="GVirDomainDiskPrivate*"/>
      </field>
    </class>
    <record name="DomainDiskClass"
            c:type="GVirDomainDiskClass"
            glib:is-gtype-struct-for="DomainDisk">
      <field name="parent_class">
        <type name="DomainDeviceClass" c:type="GVirDomainDeviceClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="DomainDiskPrivate"
            c:type="GVirDomainDiskPrivate"
            disguised="1">
    </record>
    <record name="DomainDiskStats"
            c:type="GVirDomainDiskStats"
            glib:type-name="GVirDomainDiskStats"
            glib:get-type="gvir_domain_disk_stats_get_type"
            c:symbol-prefix="domain_disk_stats">
      <field name="rd_req" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="rd_bytes" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="wr_req" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="wr_bytes" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="errs" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
    </record>
    <glib:boxed glib:name="DomainHandle"
                c:symbol-prefix="domain_handle"
                glib:type-name="GVirDomainHandle"
                glib:get-type="gvir_domain_handle_get_type">
    </glib:boxed>
    <record name="DomainInfo"
            c:type="GVirDomainInfo"
            glib:type-name="GVirDomainInfo"
            glib:get-type="gvir_domain_info_get_type"
            c:symbol-prefix="domain_info">
      <field name="state" writable="1">
        <type name="DomainState" c:type="GVirDomainState"/>
      </field>
      <field name="maxMem" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="memory" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="nrVirtCpu" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="cpuTime" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
    </record>
    <class name="DomainInterface"
           c:symbol-prefix="domain_interface"
           c:type="GVirDomainInterface"
           parent="DomainDevice"
           glib:type-name="GVirDomainInterface"
           glib:get-type="gvir_domain_interface_get_type"
           glib:type-struct="DomainInterfaceClass">
      <method name="get_stats"
              c:identifier="gvir_domain_interface_get_stats"
              throws="1">
        <doc xml:space="preserve">This function returns network interface stats. Individual fields
within the stats structure may be returned as -1, which indicates
that the hypervisor does not support that particular statistic.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the stats or %NULL in case of error. The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="DomainInterfaceStats"
                c:type="GVirDomainInterfaceStats*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the domain interface</doc>
            <type name="DomainInterface" c:type="GVirDomainInterface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="DomainDevice" c:type="GVirDomainDevice"/>
      </field>
      <field name="priv">
        <type name="DomainInterfacePrivate"
              c:type="GVirDomainInterfacePrivate*"/>
      </field>
    </class>
    <record name="DomainInterfaceClass"
            c:type="GVirDomainInterfaceClass"
            glib:is-gtype-struct-for="DomainInterface">
      <field name="parent_class">
        <type name="DomainDeviceClass" c:type="GVirDomainDeviceClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="DomainInterfacePrivate"
            c:type="GVirDomainInterfacePrivate"
            disguised="1">
    </record>
    <record name="DomainInterfaceStats"
            c:type="GVirDomainInterfaceStats"
            glib:type-name="GVirDomainInterfaceStats"
            glib:get-type="gvir_domain_interface_stats_get_type"
            c:symbol-prefix="domain_interface_stats">
      <field name="rx_bytes" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="rx_packets" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="rx_errs" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="rx_drop" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="tx_bytes" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="tx_packets" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="tx_errs" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="tx_drop" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
    </record>
    <record name="DomainPrivate" c:type="GVirDomainPrivate" disguised="1">
    </record>
    <enumeration name="DomainRebootFlags"
                 glib:type-name="GVirDomainRebootFlags"
                 glib:get-type="gvir_domain_reboot_flags_get_type"
                 c:type="GVirDomainRebootFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_REBOOT_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags, hypervisor choice</doc>
      </member>
      <member name="acpi_power_btn"
              value="1"
              c:identifier="GVIR_DOMAIN_REBOOT_ACPI_POWER_BTN"
              glib:nick="acpi-power-btn">
        <doc xml:space="preserve">Send ACPI event</doc>
      </member>
      <member name="guest_agent"
              value="2"
              c:identifier="GVIR_DOMAIN_REBOOT_GUEST_AGENT"
              glib:nick="guest-agent">
        <doc xml:space="preserve">Use guest agent</doc>
      </member>
    </enumeration>
    <enumeration name="DomainShutdownFlags"
                 glib:type-name="GVirDomainShutdownFlags"
                 glib:get-type="gvir_domain_shutdown_flags_get_type"
                 c:type="GVirDomainShutdownFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_SHUTDOWN_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags, hypervisor choice</doc>
      </member>
      <member name="acpi_power_btn"
              value="1"
              c:identifier="GVIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN"
              glib:nick="acpi-power-btn">
        <doc xml:space="preserve">Send ACPI event</doc>
      </member>
      <member name="guest_agent"
              value="2"
              c:identifier="GVIR_DOMAIN_SHUTDOWN_GUEST_AGENT"
              glib:nick="guest-agent">
        <doc xml:space="preserve">Use guest agent</doc>
      </member>
    </enumeration>
    <class name="DomainSnapshot"
           c:symbol-prefix="domain_snapshot"
           c:type="GVirDomainSnapshot"
           parent="GObject.Object"
           glib:type-name="GVirDomainSnapshot"
           glib:get-type="gvir_domain_snapshot_get_type"
           glib:type-struct="DomainSnapshotClass">
      <method name="delete"
              c:identifier="gvir_domain_snapshot_delete"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success, FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">The domain snapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Bitwise or of #GVirDomainSnapshotDeleteFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_async"
              c:identifier="gvir_domain_snapshot_delete_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">A #GVirDomainSnapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Bitwise-OR of #GVirDomainSnapshotDeleteFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_finish"
              c:identifier="gvir_domain_snapshot_delete_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">A #GVirDomainSnapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config"
              c:identifier="gvir_domain_snapshot_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.DomainSnapshot"
                c:type="GVirConfigDomainSnapshot*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">the domain_snapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_is_current"
              c:identifier="gvir_domain_snapshot_get_is_current"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">The domain snapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Currently unused, pass 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="is_current"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">%TRUE if the given snapshot is the current snapshot
of its domain, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_domain_snapshot_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="revert_to"
              c:identifier="gvir_domain_snapshot_revert_to"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if the snapshot's domain has successfully been
reverted to the given snapshot, FALSE otherwise, in which case
@error will be set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">The domain snapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Bitwise OR of GVirDomainSnapshotRevertFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="revert_to_async"
              c:identifier="gvir_domain_snapshot_revert_to_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">A #GVirDomainSnapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">Bitwise OR of #GVirDomainSnapshotRevertFlags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">The callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">Opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="revert_to_finish"
              c:identifier="gvir_domain_snapshot_revert_to_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">The domain snapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">The result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_config"
              c:identifier="gvir_domain_snapshot_set_config"
              throws="1">
        <doc xml:space="preserve">Updates the given snapshot's configuration according to the
given GVirConfigDomainSnapshot.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if no error was reported, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="snapshot" transfer-ownership="none">
            <doc xml:space="preserve">The domain snapshot</doc>
            <type name="DomainSnapshot" c:type="GVirDomainSnapshot*"/>
          </instance-parameter>
          <parameter name="conf" transfer-ownership="none">
            <doc xml:space="preserve">The new config object</doc>
            <type name="LibvirtGConfig.DomainSnapshot"
                  c:type="GVirConfigDomainSnapshot*"/>
          </parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="DomainSnapshotHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DomainSnapshotPrivate"
              c:type="GVirDomainSnapshotPrivate*"/>
      </field>
    </class>
    <record name="DomainSnapshotClass"
            c:type="GVirDomainSnapshotClass"
            glib:is-gtype-struct-for="DomainSnapshot">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="DomainSnapshotCreateFlags"
                 glib:type-name="GVirDomainSnapshotCreateFlags"
                 glib:get-type="gvir_domain_snapshot_create_flags_get_type"
                 c:type="GVirDomainSnapshotCreateFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags</doc>
      </member>
      <member name="redefine"
              value="1"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_REDEFINE"
              glib:nick="redefine">
        <doc xml:space="preserve">Restore or alter metadata</doc>
      </member>
      <member name="current"
              value="2"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_CURRENT"
              glib:nick="current">
        <doc xml:space="preserve">With redefine, make snapshot current</doc>
      </member>
      <member name="no_metadata"
              value="4"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_NO_METADATA"
              glib:nick="no-metadata">
        <doc xml:space="preserve">Make snapshot without remembering it</doc>
      </member>
      <member name="halt"
              value="8"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_HALT"
              glib:nick="halt">
        <doc xml:space="preserve">Stop running guest after snapshot</doc>
      </member>
      <member name="disk_only"
              value="16"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_DISK_ONLY"
              glib:nick="disk-only">
        <doc xml:space="preserve">Disk snapshot, not system checkpoint</doc>
      </member>
      <member name="reuse_ext"
              value="32"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_REUSE_EXT"
              glib:nick="reuse-ext">
        <doc xml:space="preserve">Reuse any existing external files</doc>
      </member>
      <member name="quiesce"
              value="64"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_QUIESCE"
              glib:nick="quiesce">
        <doc xml:space="preserve">Use guest agent to quiesce all mounter
                               file systems within the domain</doc>
      </member>
      <member name="atomic"
              value="128"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_ATOMIC"
              glib:nick="atomic">
        <doc xml:space="preserve">Atomically avoid partial changes</doc>
      </member>
    </enumeration>
    <enumeration name="DomainSnapshotDeleteFlags"
                 glib:type-name="GVirDomainSnapshotDeleteFlags"
                 glib:get-type="gvir_domain_snapshot_delete_flags_get_type"
                 c:type="GVirDomainSnapshotDeleteFlags">
      <member name="children"
              value="1"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN"
              glib:nick="children">
        <doc xml:space="preserve">Also delete children</doc>
      </member>
      <member name="metadata_only"
              value="2"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY"
              glib:nick="metadata-only">
        <doc xml:space="preserve">Delete just metadata</doc>
      </member>
      <member name="children_only"
              value="4"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY"
              glib:nick="children-only">
        <doc xml:space="preserve">Delete just children</doc>
      </member>
    </enumeration>
    <glib:boxed glib:name="DomainSnapshotHandle"
                c:symbol-prefix="domain_snapshot_handle"
                glib:type-name="GVirDomainSnapshotHandle"
                glib:get-type="gvir_domain_snapshot_handle_get_type">
    </glib:boxed>
    <enumeration name="DomainSnapshotListFlags"
                 glib:type-name="GVirDomainSnapshotListFlags"
                 glib:get-type="gvir_domain_snapshot_list_flags_get_type"
                 c:type="GVirDomainSnapshotListFlags">
      <member name="all"
              value="0"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_ALL"
              glib:nick="all">
        <doc xml:space="preserve">List all snapshots</doc>
      </member>
      <member name="descendants"
              value="1"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS"
              glib:nick="descendants">
        <doc xml:space="preserve">List all descendants, not just
                                        children, when listing a snapshot.
                                        For historical reasons, groups do not use contiguous bits.</doc>
      </member>
      <member name="roots"
              value="1"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_ROOTS"
              glib:nick="roots">
        <doc xml:space="preserve">Filter by snapshots with no parents, when listing a domain</doc>
      </member>
      <member name="metadata"
              value="2"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_METADATA"
              glib:nick="metadata">
        <doc xml:space="preserve">Filter by snapshots which have metadata</doc>
      </member>
      <member name="leaves"
              value="4"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_LEAVES"
              glib:nick="leaves">
        <doc xml:space="preserve">Filter by snapshots with no children</doc>
      </member>
      <member name="no_leaves"
              value="8"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES"
              glib:nick="no-leaves">
        <doc xml:space="preserve">Filter by snapshots that have children</doc>
      </member>
      <member name="no_metadata"
              value="16"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA"
              glib:nick="no-metadata">
        <doc xml:space="preserve">Filter by snapshots with no metadata</doc>
      </member>
      <member name="inactive"
              value="32"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_INACTIVE"
              glib:nick="inactive">
        <doc xml:space="preserve">Filter by snapshots taken while guest was shut off</doc>
      </member>
      <member name="active"
              value="64"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_ACTIVE"
              glib:nick="active">
        <doc xml:space="preserve">Filter by snapshots taken while guest was active, and with memory state</doc>
      </member>
      <member name="disk_only"
              value="128"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY"
              glib:nick="disk-only">
        <doc xml:space="preserve">Filter by snapshots taken while guest was active, but without memory state</doc>
      </member>
      <member name="internal"
              value="256"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_INTERNAL"
              glib:nick="internal">
        <doc xml:space="preserve">Filter by snapshots stored internal to disk images</doc>
      </member>
      <member name="external"
              value="512"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL"
              glib:nick="external">
        <doc xml:space="preserve">Filter by snapshots that use files external to disk images</doc>
      </member>
    </enumeration>
    <record name="DomainSnapshotPrivate"
            c:type="GVirDomainSnapshotPrivate"
            disguised="1">
    </record>
    <enumeration name="DomainSnapshotRevertFlags"
                 glib:type-name="GVirDomainSnapshotRevertFlags"
                 glib:get-type="gvir_domain_snapshot_revert_flags_get_type"
                 c:type="GVirDomainSnapshotRevertFlags">
      <member name="running"
              value="1"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_REVERT_RUNNING"
              glib:nick="running">
        <doc xml:space="preserve">Run after revert</doc>
      </member>
      <member name="paused"
              value="2"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_REVERT_PAUSED"
              glib:nick="paused">
        <doc xml:space="preserve">Pause after revert</doc>
      </member>
      <member name="force"
              value="4"
              c:identifier="GVIR_DOMAIN_SNAPSHOT_REVERT_FORCE"
              glib:nick="force">
        <doc xml:space="preserve">Allow risky reverts</doc>
      </member>
    </enumeration>
    <bitfield name="DomainStartFlags"
              glib:type-name="GVirDomainStartFlags"
              glib:get-type="gvir_domain_start_flags_get_type"
              c:type="GVirDomainStartFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_START_NONE"
              glib:nick="none">
      </member>
      <member name="paused"
              value="1"
              c:identifier="GVIR_DOMAIN_START_PAUSED"
              glib:nick="paused">
      </member>
      <member name="autodestroy"
              value="2"
              c:identifier="GVIR_DOMAIN_START_AUTODESTROY"
              glib:nick="autodestroy">
      </member>
      <member name="bypass_cache"
              value="4"
              c:identifier="GVIR_DOMAIN_START_BYPASS_CACHE"
              glib:nick="bypass-cache">
      </member>
      <member name="force_boot"
              value="8"
              c:identifier="GVIR_DOMAIN_START_FORCE_BOOT"
              glib:nick="force-boot">
      </member>
    </bitfield>
    <enumeration name="DomainState"
                 glib:type-name="GVirDomainState"
                 glib:get-type="gvir_domain_state_get_type"
                 c:type="GVirDomainState">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_STATE_NONE"
              glib:nick="none">
      </member>
      <member name="running"
              value="1"
              c:identifier="GVIR_DOMAIN_STATE_RUNNING"
              glib:nick="running">
      </member>
      <member name="blocked"
              value="2"
              c:identifier="GVIR_DOMAIN_STATE_BLOCKED"
              glib:nick="blocked">
      </member>
      <member name="paused"
              value="3"
              c:identifier="GVIR_DOMAIN_STATE_PAUSED"
              glib:nick="paused">
      </member>
      <member name="shutdown"
              value="4"
              c:identifier="GVIR_DOMAIN_STATE_SHUTDOWN"
              glib:nick="shutdown">
      </member>
      <member name="shutoff"
              value="5"
              c:identifier="GVIR_DOMAIN_STATE_SHUTOFF"
              glib:nick="shutoff">
      </member>
      <member name="crashed"
              value="6"
              c:identifier="GVIR_DOMAIN_STATE_CRASHED"
              glib:nick="crashed">
      </member>
      <member name="pmsuspended"
              value="7"
              c:identifier="GVIR_DOMAIN_STATE_PMSUSPENDED"
              glib:nick="pmsuspended">
      </member>
    </enumeration>
    <enumeration name="DomainUpdateDeviceFlags"
                 glib:type-name="GVirDomainUpdateDeviceFlags"
                 glib:get-type="gvir_domain_update_device_flags_get_type"
                 c:type="GVirDomainUpdateDeviceFlags">
      <member name="current"
              value="0"
              c:identifier="GVIR_DOMAIN_UPDATE_DEVICE_CURRENT"
              glib:nick="current">
        <doc xml:space="preserve">Update current domain state</doc>
      </member>
      <member name="live"
              value="1"
              c:identifier="GVIR_DOMAIN_UPDATE_DEVICE_LIVE"
              glib:nick="live">
        <doc xml:space="preserve">Update state for only active domains</doc>
      </member>
      <member name="config"
              value="2"
              c:identifier="GVIR_DOMAIN_UPDATE_DEVICE_CONFIG"
              glib:nick="config">
        <doc xml:space="preserve">Update state for persistent state only</doc>
      </member>
    </enumeration>
    <enumeration name="DomainXMLFlags"
                 glib:type-name="GVirDomainXMLFlags"
                 glib:get-type="gvir_domain_xml_flags_get_type"
                 c:type="GVirDomainXMLFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_DOMAIN_XML_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags</doc>
      </member>
      <member name="secure"
              value="1"
              c:identifier="GVIR_DOMAIN_XML_SECURE"
              glib:nick="secure">
        <doc xml:space="preserve">Dump security sensitive information too</doc>
      </member>
      <member name="inactive"
              value="2"
              c:identifier="GVIR_DOMAIN_XML_INACTIVE"
              glib:nick="inactive">
        <doc xml:space="preserve">Dump inactive domain information</doc>
      </member>
      <member name="update_cpu"
              value="4"
              c:identifier="GVIR_DOMAIN_XML_UPDATE_CPU"
              glib:nick="update-cpu">
        <doc xml:space="preserve">Update guest CPU requirements according to host CPU</doc>
      </member>
    </enumeration>
    <enumeration name="IPAddrType"
                 glib:type-name="GVirIPAddrType"
                 glib:get-type="gvir_ip_addr_type_get_type"
                 c:type="GVirIPAddrType">
      <member name="ipv4"
              value="0"
              c:identifier="GVIR_IP_ADDR_TYPE_IPV4"
              glib:nick="ipv4">
        <doc xml:space="preserve">IPv4 Address.</doc>
      </member>
      <member name="ipv6"
              value="1"
              c:identifier="GVIR_IP_ADDR_TYPE_IPV6"
              glib:nick="ipv6">
        <doc xml:space="preserve">IPv6 Address.</doc>
      </member>
    </enumeration>
    <class name="Interface"
           c:symbol-prefix="interface"
           c:type="GVirInterface"
           parent="GObject.Object"
           glib:type-name="GVirInterface"
           glib:get-type="gvir_interface_get_type"
           glib:type-struct="InterfaceClass">
      <method name="get_config"
              c:identifier="gvir_interface_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.Interface" c:type="GVirConfigInterface*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iface" transfer-ownership="none">
            <doc xml:space="preserve">the interface</doc>
            <type name="Interface" c:type="GVirInterface*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mac" c:identifier="gvir_interface_get_mac">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iface" transfer-ownership="none">
            <type name="Interface" c:type="GVirInterface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_interface_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iface" transfer-ownership="none">
            <type name="Interface" c:type="GVirInterface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="InterfaceHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="InterfacePrivate" c:type="GVirInterfacePrivate*"/>
      </field>
    </class>
    <record name="InterfaceClass"
            c:type="GVirInterfaceClass"
            glib:is-gtype-struct-for="Interface">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="InterfaceHandle"
                c:symbol-prefix="interface_handle"
                glib:type-name="GVirInterfaceHandle"
                glib:get-type="gvir_interface_handle_get_type">
    </glib:boxed>
    <record name="InterfacePrivate"
            c:type="GVirInterfacePrivate"
            disguised="1">
    </record>
    <class name="Manager"
           c:symbol-prefix="manager"
           c:type="GVirManager"
           parent="GObject.Object"
           glib:type-name="GVirManager"
           glib:get-type="gvir_manager_get_type"
           glib:type-struct="ManagerClass">
      <constructor name="new" c:identifier="gvir_manager_new">
        <return-value transfer-ownership="full">
          <type name="Manager" c:type="GVirManager*"/>
        </return-value>
      </constructor>
      <virtual-method name="connection_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="man" transfer-ownership="none">
            <type name="Manager" c:type="GVirManager*"/>
          </instance-parameter>
          <parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="connection_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="man" transfer-ownership="none">
            <type name="Manager" c:type="GVirManager*"/>
          </instance-parameter>
          <parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_connection" c:identifier="gvir_manager_add_connection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="man" transfer-ownership="none">
            <type name="Manager" c:type="GVirManager*"/>
          </instance-parameter>
          <parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_connection_by_uri"
              c:identifier="gvir_manager_find_connection_by_uri">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the connection,or NULL. The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="Connection" c:type="GVirConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="man" transfer-ownership="none">
            <type name="Manager" c:type="GVirManager*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_connections"
              c:identifier="gvir_manager_get_connections">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the connections.
The returned list should be freed with g_list_free(), after its elements
have been unreffed with g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Connection"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="man" transfer-ownership="none">
            <type name="Manager" c:type="GVirManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_connection"
              c:identifier="gvir_manager_remove_connection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="man" transfer-ownership="none">
            <type name="Manager" c:type="GVirManager*"/>
          </instance-parameter>
          <parameter name="conn" transfer-ownership="none">
            <type name="Connection" c:type="GVirConnection*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ManagerPrivate" c:type="GVirManagerPrivate*"/>
      </field>
      <glib:signal name="connection-added" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Connection"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="connection-removed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Connection"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ManagerClass"
            c:type="GVirManagerClass"
            glib:is-gtype-struct-for="Manager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="connection_added">
        <callback name="connection_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="man" transfer-ownership="none">
              <type name="Manager" c:type="GVirManager*"/>
            </parameter>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="connection_removed">
        <callback name="connection_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="man" transfer-ownership="none">
              <type name="Manager" c:type="GVirManager*"/>
            </parameter>
            <parameter name="conn" transfer-ownership="none">
              <type name="Connection" c:type="GVirConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ManagerPrivate" c:type="GVirManagerPrivate" disguised="1">
    </record>
    <class name="Network"
           c:symbol-prefix="network"
           c:type="GVirNetwork"
           parent="GObject.Object"
           glib:type-name="GVirNetwork"
           glib:get-type="gvir_network_get_type"
           glib:type-struct="NetworkClass">
      <virtual-method name="started">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="net" transfer-ownership="none">
            <type name="Network" c:type="GVirNetwork*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="net" transfer-ownership="none">
            <type name="Network" c:type="GVirNetwork*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_config"
              c:identifier="gvir_network_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.Network" c:type="GVirConfigNetwork*"/>
        </return-value>
        <parameters>
          <instance-parameter name="network" transfer-ownership="none">
            <doc xml:space="preserve">the network</doc>
            <type name="Network" c:type="GVirNetwork*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dhcp_leases"
              c:identifier="gvir_network_get_dhcp_leases"
              throws="1">
        <doc xml:space="preserve">This function fetches leases info of guests in the specified network. If the
optional parameter @mac is specified, the returned list will contain only
lease info about a specific guest interface with @mac. There can be multiple
leases for a single @mac because this API supports DHCPv6 too.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the
list of network leases. Each object in the returned list should be unreffed
with g_object_unref() and the list itself using g_list_free, when no longer
needed.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="NetworkDHCPLease"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="network" transfer-ownership="none">
            <doc xml:space="preserve">the network</doc>
            <type name="Network" c:type="GVirNetwork*"/>
          </instance-parameter>
          <parameter name="mac"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The optional ASCII formatted MAC address of an interface</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">placeholder for flags, must be 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_network_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="network" transfer-ownership="none">
            <type name="Network" c:type="GVirNetwork*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uuid" c:identifier="gvir_network_get_uuid">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="network" transfer-ownership="none">
            <type name="Network" c:type="GVirNetwork*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="NetworkHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="NetworkPrivate" c:type="GVirNetworkPrivate*"/>
      </field>
    </class>
    <record name="NetworkClass"
            c:type="GVirNetworkClass"
            glib:is-gtype-struct-for="Network">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="started">
        <callback name="started">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="net" transfer-ownership="none">
              <type name="Network" c:type="GVirNetwork*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stopped">
        <callback name="stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="net" transfer-ownership="none">
              <type name="Network" c:type="GVirNetwork*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="NetworkDHCPLease"
           c:symbol-prefix="network_dhcp_lease"
           c:type="GVirNetworkDHCPLease"
           parent="GObject.Object"
           glib:type-name="GVirNetworkDHCPLease"
           glib:get-type="gvir_network_dhcp_lease_get_type"
           glib:type-struct="NetworkDHCPLeaseClass">
      <method name="get_client_id"
              c:identifier="gvir_network_dhcp_lease_get_client_id">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The client ID or DUID.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expiry_time"
              c:identifier="gvir_network_dhcp_lease_get_expiry_time">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The expiry time of this lease, as seconds since epoch.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hostname"
              c:identifier="gvir_network_dhcp_lease_get_hostname">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The hostname.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iaid" c:identifier="gvir_network_dhcp_lease_get_iaid">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The IAID.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iface"
              c:identifier="gvir_network_dhcp_lease_get_iface">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The network interface name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ip" c:identifier="gvir_network_dhcp_lease_get_ip">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The IP address.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ip_type"
              c:identifier="gvir_network_dhcp_lease_get_ip_type">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The type of IP, see %GVirIPAddrType for possible values.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mac" c:identifier="gvir_network_dhcp_lease_get_mac">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The MAC address.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_prefix"
              c:identifier="gvir_network_dhcp_lease_get_prefix">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of network address bits in the IP address.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="lease" transfer-ownership="none">
            <doc xml:space="preserve">the lease</doc>
            <type name="NetworkDHCPLease" c:type="GVirNetworkDHCPLease*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="NetworkDHCPLeasePrivate"
              c:type="GVirNetworkDHCPLeasePrivate*"/>
      </field>
    </class>
    <record name="NetworkDHCPLeaseClass"
            c:type="GVirNetworkDHCPLeaseClass"
            glib:is-gtype-struct-for="NetworkDHCPLease">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="NetworkDHCPLeasePrivate"
            c:type="GVirNetworkDHCPLeasePrivate"
            disguised="1">
    </record>
    <class name="NetworkFilter"
           c:symbol-prefix="network_filter"
           c:type="GVirNetworkFilter"
           parent="GObject.Object"
           glib:type-name="GVirNetworkFilter"
           glib:get-type="gvir_network_filter_get_type"
           glib:type-struct="NetworkFilterClass">
      <method name="get_config"
              c:identifier="gvir_network_filter_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.NetworkFilter"
                c:type="GVirConfigNetworkFilter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">the network_filter</doc>
            <type name="NetworkFilter" c:type="GVirNetworkFilter*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_network_filter_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <type name="NetworkFilter" c:type="GVirNetworkFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uuid" c:identifier="gvir_network_filter_get_uuid">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <type name="NetworkFilter" c:type="GVirNetworkFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="NetworkFilterHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="NetworkFilterPrivate" c:type="GVirNetworkFilterPrivate*"/>
      </field>
    </class>
    <record name="NetworkFilterClass"
            c:type="GVirNetworkFilterClass"
            glib:is-gtype-struct-for="NetworkFilter">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="NetworkFilterHandle"
                c:symbol-prefix="network_filter_handle"
                glib:type-name="GVirNetworkFilterHandle"
                glib:get-type="gvir_network_filter_handle_get_type">
    </glib:boxed>
    <record name="NetworkFilterPrivate"
            c:type="GVirNetworkFilterPrivate"
            disguised="1">
    </record>
    <glib:boxed glib:name="NetworkHandle"
                c:symbol-prefix="network_handle"
                glib:type-name="GVirNetworkHandle"
                glib:get-type="gvir_network_handle_get_type">
    </glib:boxed>
    <record name="NetworkPrivate" c:type="GVirNetworkPrivate" disguised="1">
    </record>
    <class name="NodeDevice"
           c:symbol-prefix="node_device"
           c:type="GVirNodeDevice"
           parent="GObject.Object"
           glib:type-name="GVirNodeDevice"
           glib:get-type="gvir_node_device_get_type"
           glib:type-struct="NodeDeviceClass">
      <method name="get_config"
              c:identifier="gvir_node_device_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.NodeDevice"
                c:type="GVirConfigNodeDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">the node_device</doc>
            <type name="NodeDevice" c:type="GVirNodeDevice*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_node_device_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="NodeDevice" c:type="GVirNodeDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="NodeDeviceHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="NodeDevicePrivate" c:type="GVirNodeDevicePrivate*"/>
      </field>
    </class>
    <record name="NodeDeviceClass"
            c:type="GVirNodeDeviceClass"
            glib:is-gtype-struct-for="NodeDevice">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="NodeDeviceHandle"
                c:symbol-prefix="node_device_handle"
                glib:type-name="GVirNodeDeviceHandle"
                glib:get-type="gvir_node_device_handle_get_type">
    </glib:boxed>
    <record name="NodeDevicePrivate"
            c:type="GVirNodeDevicePrivate"
            disguised="1">
    </record>
    <record name="NodeInfo"
            c:type="GVirNodeInfo"
            glib:type-name="GVirNodeInfo"
            glib:get-type="gvir_node_info_get_type"
            c:symbol-prefix="node_info">
      <field name="model" writable="1">
        <array zero-terminated="0" c:type="gchar" fixed-size="32">
          <type name="gchar" c:type="gchar"/>
        </array>
      </field>
      <field name="memory" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="cpus" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="mhz" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="nodes" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="sockets" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="cores" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="threads" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <class name="Secret"
           c:symbol-prefix="secret"
           c:type="GVirSecret"
           parent="GObject.Object"
           glib:type-name="GVirSecret"
           glib:get-type="gvir_secret_get_type"
           glib:type-struct="SecretClass">
      <method name="get_config"
              c:identifier="gvir_secret_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.Secret" c:type="GVirConfigSecret*"/>
        </return-value>
        <parameters>
          <instance-parameter name="secret" transfer-ownership="none">
            <doc xml:space="preserve">the secret</doc>
            <type name="Secret" c:type="GVirSecret*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_secret_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="secret" transfer-ownership="none">
            <type name="Secret" c:type="GVirSecret*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uuid" c:identifier="gvir_secret_get_uuid">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="secret" transfer-ownership="none">
            <type name="Secret" c:type="GVirSecret*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="SecretHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SecretPrivate" c:type="GVirSecretPrivate*"/>
      </field>
    </class>
    <record name="SecretClass"
            c:type="GVirSecretClass"
            glib:is-gtype-struct-for="Secret">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="SecretHandle"
                c:symbol-prefix="secret_handle"
                glib:type-name="GVirSecretHandle"
                glib:get-type="gvir_secret_handle_get_type">
    </glib:boxed>
    <record name="SecretPrivate" c:type="GVirSecretPrivate" disguised="1">
    </record>
    <class name="StoragePool"
           c:symbol-prefix="storage_pool"
           c:type="GVirStoragePool"
           parent="GObject.Object"
           glib:type-name="GVirStoragePool"
           glib:get-type="gvir_storage_pool_get_type"
           glib:type-struct="StoragePoolClass">
      <method name="build" c:identifier="gvir_storage_pool_build" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to build</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="build_async" c:identifier="gvir_storage_pool_build_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to build</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="build_finish"
              c:identifier="gvir_storage_pool_build_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to build</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_volume"
              c:identifier="gvir_storage_pool_create_volume"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the newly created volume. The returned object
should be unreffed with g_object_unref() when no longer needed.</doc>
          <type name="StorageVol" c:type="GVirStorageVol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool in which to create the volume</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="conf" transfer-ownership="none">
            <doc xml:space="preserve">the configuration for the new volume</doc>
            <type name="LibvirtGConfig.StorageVol"
                  c:type="GVirConfigStorageVol*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete" c:identifier="gvir_storage_pool_delete" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to delete</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_async"
              c:identifier="gvir_storage_pool_delete_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to delete</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_finish"
              c:identifier="gvir_storage_pool_delete_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to delete</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_active" c:identifier="gvir_storage_pool_get_active">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_autostart"
              c:identifier="gvir_storage_pool_get_autostart"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True if autostart is enabled, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_config"
              c:identifier="gvir_storage_pool_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.StoragePool"
                c:type="GVirConfigStoragePool*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage_pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info"
              c:identifier="gvir_storage_pool_get_info"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the info. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="StoragePoolInfo" c:type="GVirStoragePoolInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage_pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_storage_pool_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_persistent"
              c:identifier="gvir_storage_pool_get_persistent">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uuid" c:identifier="gvir_storage_pool_get_uuid">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_volume" c:identifier="gvir_storage_pool_get_volume">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GVirStorageVol, or NULL. The
returned object should be unreffed with g_object_unref() when no longer
needed.</doc>
          <type name="StorageVol" c:type="GVirStorageVol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">Name of the requested storage volume</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_volumes" c:identifier="gvir_storage_pool_get_volumes">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
List of #GVirStorageVol.  The returned list should be freed with
g_list_free(), after its elements have been unreffed with
g_object_unref().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="StorageVol"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="refresh"
              c:identifier="gvir_storage_pool_refresh"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh_async"
              c:identifier="gvir_storage_pool_refresh_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh_finish"
              c:identifier="gvir_storage_pool_refresh_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_autostart"
              c:identifier="gvir_storage_pool_set_autostart"
              throws="1">
        <doc xml:space="preserve">Sets whether or not storage pool @pool is started automatically on boot.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE on success, #FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="autostart" transfer-ownership="none">
            <doc xml:space="preserve">Whether or not to autostart</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="gvir_storage_pool_start" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to start</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_async" c:identifier="gvir_storage_pool_start_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to start</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_finish"
              c:identifier="gvir_storage_pool_start_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to start</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gvir_storage_pool_stop" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to stop</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop_async" c:identifier="gvir_storage_pool_stop_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to stop</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop_finish"
              c:identifier="gvir_storage_pool_stop_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to stop</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="undefine"
              c:identifier="gvir_storage_pool_undefine"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to undefine</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="undefine_async"
              c:identifier="gvir_storage_pool_undefine_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to undefine</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation object</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve">completion callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">opaque data for callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="undefine_finish"
              c:identifier="gvir_storage_pool_undefine_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#True on success, #False otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">the storage pool to undefine</doc>
            <type name="StoragePool" c:type="GVirStoragePool*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">async method result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="StoragePoolHandle"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="StoragePoolPrivate" c:type="GVirStoragePoolPrivate*"/>
      </field>
    </class>
    <record name="StoragePoolClass"
            c:type="GVirStoragePoolClass"
            glib:is-gtype-struct-for="StoragePool">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="StoragePoolHandle"
                c:symbol-prefix="storage_pool_handle"
                glib:type-name="GVirStoragePoolHandle"
                glib:get-type="gvir_storage_pool_handle_get_type">
    </glib:boxed>
    <record name="StoragePoolInfo"
            c:type="GVirStoragePoolInfo"
            glib:type-name="GVirStoragePoolInfo"
            glib:get-type="gvir_storage_pool_info_get_type"
            c:symbol-prefix="storage_pool_info">
      <field name="state" writable="1">
        <type name="StoragePoolState" c:type="GVirStoragePoolState"/>
      </field>
      <field name="capacity" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="allocation" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="available" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
    </record>
    <record name="StoragePoolPrivate"
            c:type="GVirStoragePoolPrivate"
            disguised="1">
    </record>
    <enumeration name="StoragePoolState"
                 glib:type-name="GVirStoragePoolState"
                 glib:get-type="gvir_storage_pool_state_get_type"
                 c:type="GVirStoragePoolState">
      <member name="inactive"
              value="0"
              c:identifier="GVIR_STORAGE_POOL_STATE_INACTIVE"
              glib:nick="inactive">
      </member>
      <member name="building"
              value="1"
              c:identifier="GVIR_STORAGE_POOL_STATE_BUILDING"
              glib:nick="building">
      </member>
      <member name="running"
              value="2"
              c:identifier="GVIR_STORAGE_POOL_STATE_RUNNING"
              glib:nick="running">
      </member>
      <member name="degraded"
              value="3"
              c:identifier="GVIR_STORAGE_POOL_STATE_DEGRADED"
              glib:nick="degraded">
      </member>
      <member name="inaccessible"
              value="4"
              c:identifier="GVIR_STORAGE_POOL_STATE_INACCESSIBLE"
              glib:nick="inaccessible">
      </member>
    </enumeration>
    <class name="StorageVol"
           c:symbol-prefix="storage_vol"
           c:type="GVirStorageVol"
           parent="GObject.Object"
           glib:type-name="GVirStorageVol"
           glib:get-type="gvir_storage_vol_get_type"
           glib:type-struct="StorageVolClass">
      <method name="delete" c:identifier="gvir_storage_vol_delete" throws="1">
        <doc xml:space="preserve">Deletes the storage volume @vol.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <doc xml:space="preserve">the storage volume to delete</doc>
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="download"
              c:identifier="gvir_storage_vol_download"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE of success, #FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <doc xml:space="preserve">the storage volume to download from</doc>
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">stream to use as output</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve">position in @vol to start reading from</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">limit on amount of data to download, or 0 for downloading all data</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">extra flags, not used yet, pass 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config"
              c:identifier="gvir_storage_vol_get_config"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the config. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="LibvirtGConfig.StorageVol"
                c:type="GVirConfigStorageVol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <doc xml:space="preserve">the storage_vol</doc>
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info"
              c:identifier="gvir_storage_vol_get_info"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the info. The returned object should be
unreffed with g_object_unref() when no longer needed.</doc>
          <type name="StorageVolInfo" c:type="GVirStorageVolInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <doc xml:space="preserve">the storage_vol</doc>
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gvir_storage_vol_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path"
              c:identifier="gvir_storage_vol_get_path"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="resize" c:identifier="gvir_storage_vol_resize" throws="1">
        <doc xml:space="preserve">Changes the capacity of the storage volume @vol to @capacity.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE success, #FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <doc xml:space="preserve">the storage volume to resize</doc>
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
          <parameter name="capacity" transfer-ownership="none">
            <doc xml:space="preserve">the new capacity of the volume</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags</doc>
            <type name="StorageVolResizeFlags" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="upload" c:identifier="gvir_storage_vol_upload" throws="1">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE of success, #FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="vol" transfer-ownership="none">
            <doc xml:space="preserve">the storage volume to upload</doc>
            <type name="StorageVol" c:type="GVirStorageVol*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">stream to use as input</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve">position in @vol to start to write to</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">limit on amount of data to upload, or 0 for uploading all data</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the flags, not set yet, pass 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="StorageVolHandle"/>
      </property>
      <property name="pool"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="StoragePool"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="StorageVolPrivate" c:type="GVirStorageVolPrivate*"/>
      </field>
    </class>
    <record name="StorageVolClass"
            c:type="GVirStorageVolClass"
            glib:is-gtype-struct-for="StorageVol">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="StorageVolHandle"
                c:symbol-prefix="storage_vol_handle"
                glib:type-name="GVirStorageVolHandle"
                glib:get-type="gvir_storage_vol_handle_get_type">
    </glib:boxed>
    <record name="StorageVolInfo"
            c:type="GVirStorageVolInfo"
            glib:type-name="GVirStorageVolInfo"
            glib:get-type="gvir_storage_vol_info_get_type"
            c:symbol-prefix="storage_vol_info">
      <field name="type" writable="1">
        <type name="StorageVolType" c:type="GVirStorageVolType"/>
      </field>
      <field name="capacity" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="allocation" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
    </record>
    <record name="StorageVolPrivate"
            c:type="GVirStorageVolPrivate"
            disguised="1">
    </record>
    <enumeration name="StorageVolResizeFlags"
                 glib:type-name="GVirStorageVolResizeFlags"
                 glib:get-type="gvir_storage_vol_resize_flags_get_type"
                 c:type="GVirStorageVolResizeFlags">
      <member name="none"
              value="0"
              c:identifier="GVIR_STORAGE_VOL_RESIZE_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags</doc>
      </member>
      <member name="allocate"
              value="1"
              c:identifier="GVIR_STORAGE_VOL_RESIZE_ALLOCATE"
              glib:nick="allocate">
        <doc xml:space="preserve">force allocation of new size</doc>
      </member>
      <member name="delta"
              value="2"
              c:identifier="GVIR_STORAGE_VOL_RESIZE_DELTA"
              glib:nick="delta">
        <doc xml:space="preserve">size is relative to current</doc>
      </member>
      <member name="shrink"
              value="4"
              c:identifier="GVIR_STORAGE_VOL_RESIZE_SHRINK"
              glib:nick="shrink">
        <doc xml:space="preserve">allow decrease in capacity. This combined
with #GVIR_STORAGE_VOL_RESIZE_DELTA, implies a negative delta.</doc>
      </member>
    </enumeration>
    <enumeration name="StorageVolType"
                 glib:type-name="GVirStorageVolType"
                 glib:get-type="gvir_storage_vol_type_get_type"
                 c:type="GVirStorageVolType">
      <member name="file"
              value="0"
              c:identifier="GVIR_STORAGE_VOL_STATE_FILE"
              glib:nick="file">
      </member>
      <member name="block"
              value="1"
              c:identifier="GVIR_STORAGE_VOL_STATE_BLOCK"
              glib:nick="block">
      </member>
      <member name="dir"
              value="2"
              c:identifier="GVIR_STORAGE_VOL_STATE_DIR"
              glib:nick="dir">
      </member>
    </enumeration>
    <class name="Stream"
           c:symbol-prefix="stream"
           c:type="GVirStream"
           parent="Gio.IOStream"
           glib:type-name="GVirStream"
           glib:get-type="gvir_stream_get_type"
           glib:type-struct="StreamClass">
      <method name="add_watch"
              c:identifier="gvir_stream_add_watch"
              shadowed-by="add_watch_full"
              introspectable="0">
        <doc xml:space="preserve">Adds a watch for @stream to the mainloop</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the event source id</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">the stream</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </instance-parameter>
          <parameter name="cond" transfer-ownership="none">
            <doc xml:space="preserve">the conditions to watch for (bitfield of #GVirStreamIOCondition)</doc>
            <type name="StreamIOCondition" c:type="GVirStreamIOCondition"/>
          </parameter>
          <parameter name="func" transfer-ownership="none" closure="2">
            <doc xml:space="preserve">the function to call when the condition is satisfied</doc>
            <type name="StreamIOFunc" c:type="GVirStreamIOFunc"/>
          </parameter>
          <parameter name="opaque" transfer-ownership="none">
            <doc xml:space="preserve">user data to pass to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_watch_full"
              c:identifier="gvir_stream_add_watch_full"
              shadows="add_watch">
        <doc xml:space="preserve">Adds a watch for @stream to the mainloop</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the event source id</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">the stream</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve">the priority of the #GVirStream source</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cond" transfer-ownership="none">
            <doc xml:space="preserve">the conditions to watch for (bitfield of #GVirStreamIOCondition)</doc>
            <type name="StreamIOCondition" c:type="GVirStreamIOCondition"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve">the function to call when the condition is satisfied</doc>
            <type name="StreamIOFunc" c:type="GVirStreamIOFunc"/>
          </parameter>
          <parameter name="opaque" transfer-ownership="none">
            <doc xml:space="preserve">user data to pass to @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">the function to call when the source is removed</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive" c:identifier="gvir_stream_receive" throws="1">
        <doc xml:space="preserve">Receive data (up to @size bytes) from a stream.
On error -1 is returned and @error is set accordingly.

gvir_stream_receive() can return any number of bytes, up to
@size. If more than @size bytes have been received, the additional
data will be returned in future calls to gvir_stream_receive().

If there is no data available, a %G_IO_ERROR_WOULD_BLOCK error will be
returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Number of bytes read, or 0 if the end of stream reached,
or -1 on error.</doc>
          <type name="gssize" c:type="gssize"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">the stream</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">a buffer
    to read data into (which should be at least @size bytes long).</doc>
            <array length="1" zero-terminated="0" c:type="gchar*">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the number of bytes you want to read from the stream</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a %GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="receive_all"
              c:identifier="gvir_stream_receive_all"
              throws="1">
        <doc xml:space="preserve">Receive the entire data stream, sending the data to the
requested data sink. This is simply a convenient alternative
to virStreamRecv, for apps that do blocking-I/o.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of bytes consumed or -1 upon error</doc>
          <type name="gssize" c:type="gssize"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">the stream</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation notifier</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve">the callback for writing data to application</doc>
            <type name="StreamSinkFunc" c:type="GVirStreamSinkFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">data to be passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="send" c:identifier="gvir_stream_send" throws="1">
        <doc xml:space="preserve">Send data (up to @size bytes) from a stream.
On error -1 is returned and @error is set accordingly.

gvir_stream_send() can return any number of bytes, up to
@size. If more than @size bytes have been sendd, the additional
data will be returned in future calls to gvir_stream_send().

If there is no data available, a %G_IO_ERROR_WOULD_BLOCK error will be
returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Number of bytes written.</doc>
          <type name="gssize" c:type="gssize"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">the stream</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">a buffer to write data from (which should be at least @size
    bytes long).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">the number of bytes you want to write to the stream</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">a %GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_all" c:identifier="gvir_stream_send_all" throws="1">
        <doc xml:space="preserve">Send the entire data stream, sending the data to the
requested data source. This is simply a convenient alternative
to virStreamRecv, for apps that do blocking-I/o.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of bytes consumed or -1 upon error</doc>
          <type name="gssize" c:type="gssize"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve">the stream</doc>
            <type name="Stream" c:type="GVirStream*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">cancellation notifier</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve">the callback for writing data to application</doc>
            <type name="StreamSourceFunc" c:type="GVirStreamSourceFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">data to be passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="handle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="StreamHandle"/>
      </property>
      <field name="parent_instance">
        <type name="Gio.IOStream" c:type="GIOStream"/>
      </field>
      <field name="priv">
        <type name="StreamPrivate" c:type="GVirStreamPrivate*"/>
      </field>
    </class>
    <record name="StreamClass"
            c:type="GVirStreamClass"
            glib:is-gtype-struct-for="Stream">
      <field name="parent_class">
        <type name="Gio.IOStreamClass" c:type="GIOStreamClass"/>
      </field>
      <field name="padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <glib:boxed glib:name="StreamHandle"
                c:symbol-prefix="stream_handle"
                glib:type-name="GVirStreamHandle"
                glib:get-type="gvir_stream_handle_get_type">
    </glib:boxed>
    <bitfield name="StreamIOCondition"
              glib:type-name="GVirStreamIOCondition"
              glib:get-type="gvir_stream_io_condition_get_type"
              c:type="GVirStreamIOCondition">
      <member name="readable"
              value="1"
              c:identifier="GVIR_STREAM_IO_CONDITION_READABLE"
              glib:nick="readable">
      </member>
      <member name="writable"
              value="2"
              c:identifier="GVIR_STREAM_IO_CONDITION_WRITABLE"
              glib:nick="writable">
      </member>
      <member name="hangup"
              value="4"
              c:identifier="GVIR_STREAM_IO_CONDITION_HANGUP"
              glib:nick="hangup">
      </member>
      <member name="error"
              value="8"
              c:identifier="GVIR_STREAM_IO_CONDITION_ERROR"
              glib:nick="error">
      </member>
    </bitfield>
    <callback name="StreamIOFunc" c:type="GVirStreamIOFunc">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <type name="Stream" c:type="GVirStream*"/>
        </parameter>
        <parameter name="cond" transfer-ownership="none">
          <type name="StreamIOCondition" c:type="GVirStreamIOCondition"/>
        </parameter>
        <parameter name="opaque" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="StreamPrivate" c:type="GVirStreamPrivate" disguised="1">
    </record>
    <callback name="StreamSinkFunc" c:type="GVirStreamSinkFunc">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the number of bytes filled, 0 upon end
of file, or -1 upon error</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve">a #GVirStream</doc>
          <type name="Stream" c:type="GVirStream*"/>
        </parameter>
        <parameter name="buf"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve">data pointer</doc>
          <array length="2" zero-terminated="0" c:type="gchar*">
            <type name="utf8" c:type="gchar"/>
          </array>
        </parameter>
        <parameter name="nbytes"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">data size</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="3">
          <doc xml:space="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="StreamSourceFunc" c:type="GVirStreamSourceFunc">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the number of bytes filled, 0 upon end
of file, or -1 upon error</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="stream" transfer-ownership="none">
          <doc xml:space="preserve">a #GVirStream</doc>
          <type name="Stream" c:type="GVirStream*"/>
        </parameter>
        <parameter name="buf"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve">data pointer</doc>
          <array length="2" zero-terminated="0" c:type="gchar*">
            <type name="utf8" c:type="gchar"/>
          </array>
        </parameter>
        <parameter name="nbytes"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">data size</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="3">
          <doc xml:space="preserve">user data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function name="init_object" c:identifier="gvir_init_object">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">pointer to application's argc</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">pointer to application's argv</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="init_object_check"
              c:identifier="gvir_init_object_check"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">pointer to application's argc</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">pointer to application's argv</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
