Blame libvirt-gobject/libvirt-gobject-domain.h

Packit a07778
/*
Packit a07778
 * libvirt-gobject-domain.c: libvirt gobject integration
Packit a07778
 *
Packit a07778
 * Copyright (C) 2010-2011 Red Hat, Inc.
Packit a07778
 *
Packit a07778
 * This library is free software; you can redistribute it and/or
Packit a07778
 * modify it under the terms of the GNU Lesser General Public
Packit a07778
 * License as published by the Free Software Foundation; either
Packit a07778
 * version 2.1 of the License, or (at your option) any later version.
Packit a07778
 *
Packit a07778
 * This library is distributed in the hope that it will be useful,
Packit a07778
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit a07778
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit a07778
 * Lesser General Public License for more details.
Packit a07778
 *
Packit a07778
 * You should have received a copy of the GNU Lesser General Public
Packit a07778
 * License along with this library. If not, see
Packit a07778
 * <http://www.gnu.org/licenses/>.
Packit a07778
 *
Packit a07778
 * Author: Daniel P. Berrange <berrange@redhat.com>
Packit a07778
 */
Packit a07778
Packit a07778
#if !defined(__LIBVIRT_GOBJECT_H__) && !defined(LIBVIRT_GOBJECT_BUILD)
Packit a07778
#error "Only <libvirt-gobject/libvirt-gobject.h> can be included directly."
Packit a07778
#endif
Packit a07778
Packit a07778
#ifndef __LIBVIRT_GOBJECT_DOMAIN_H__
Packit a07778
#define __LIBVIRT_GOBJECT_DOMAIN_H__
Packit a07778
Packit a07778
G_BEGIN_DECLS
Packit a07778
Packit a07778
#include <libvirt-gobject/libvirt-gobject-stream.h>
Packit a07778
#include <libvirt/libvirt.h>
Packit a07778
#include <libvirt-gobject/libvirt-gobject-domain-snapshot.h>
Packit a07778
Packit a07778
#define GVIR_TYPE_DOMAIN            (gvir_domain_get_type ())
Packit a07778
#define GVIR_DOMAIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GVIR_TYPE_DOMAIN, GVirDomain))
Packit a07778
#define GVIR_DOMAIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GVIR_TYPE_DOMAIN, GVirDomainClass))
Packit a07778
#define GVIR_IS_DOMAIN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GVIR_TYPE_DOMAIN))
Packit a07778
#define GVIR_IS_DOMAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GVIR_TYPE_DOMAIN))
Packit a07778
#define GVIR_DOMAIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GVIR_TYPE_DOMAIN, GVirDomainClass))
Packit a07778
Packit a07778
#define GVIR_TYPE_DOMAIN_INFO       (gvir_domain_info_get_type())
Packit a07778
#define GVIR_TYPE_DOMAIN_HANDLE     (gvir_domain_handle_get_type())
Packit a07778
Packit a07778
typedef struct _GVirDomain GVirDomain;
Packit a07778
typedef struct _GVirDomainPrivate GVirDomainPrivate;
Packit a07778
typedef struct _GVirDomainClass GVirDomainClass;
Packit a07778
Packit a07778
struct _GVirDomain
Packit a07778
{
Packit a07778
    GObject parent;
Packit a07778
Packit a07778
    GVirDomainPrivate *priv;
Packit a07778
Packit a07778
    /* Do not add fields to this struct */
Packit a07778
};
Packit a07778
Packit a07778
struct _GVirDomainClass
Packit a07778
{
Packit a07778
    GObjectClass parent_class;
Packit a07778
Packit a07778
    /* signals */
Packit a07778
    void (*started)(GVirDomain *dom);
Packit a07778
    void (*stopped)(GVirDomain *dom);
Packit a07778
    void (*resumed)(GVirDomain *dom);
Packit a07778
    void (*updated)(GVirDomain *dom);
Packit a07778
    void (*suspended)(GVirDomain *dom);
Packit a07778
    void (*pmsuspended)(GVirDomain *dom);
Packit a07778
Packit a07778
    gpointer padding[19];
Packit a07778
};
Packit a07778
Packit a07778
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_STATE_NONE    = 0,     /* no state */
Packit a07778
    GVIR_DOMAIN_STATE_RUNNING = 1,     /* the domain is running */
Packit a07778
    GVIR_DOMAIN_STATE_BLOCKED = 2,     /* the domain is blocked on resource */
Packit a07778
    GVIR_DOMAIN_STATE_PAUSED  = 3,     /* the domain is paused by user */
Packit a07778
    GVIR_DOMAIN_STATE_SHUTDOWN= 4,     /* the domain is being shut down */
Packit a07778
    GVIR_DOMAIN_STATE_SHUTOFF = 5,     /* the domain is shut off */
Packit a07778
    GVIR_DOMAIN_STATE_CRASHED = 6,     /* the domain is crashed */
Packit a07778
    GVIR_DOMAIN_STATE_PMSUSPENDED = 7  /* the domain is suspended by guest
Packit a07778
                                          power management */
Packit a07778
} GVirDomainState;
Packit a07778
Packit a07778
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_START_NONE         = 0,
Packit a07778
    GVIR_DOMAIN_START_PAUSED       = (1 << 0),
Packit a07778
    GVIR_DOMAIN_START_AUTODESTROY  = (1 << 1),
Packit a07778
    GVIR_DOMAIN_START_BYPASS_CACHE = (1 << 2),
Packit a07778
    GVIR_DOMAIN_START_FORCE_BOOT   = (1 << 3),
Packit a07778
} GVirDomainStartFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainDeleteFlags:
Packit a07778
 * @GVIR_DOMAIN_DELETE_NONE: No flags
Packit a07778
 * @GVIR_DOMAIN_DELETE_SAVED_STATE: Also remove associated saved state (if present).
Packit a07778
 * @GVIR_DOMAIN_DELETE_SNAPSHOTS_METADATA: If last use of domain, then also
Packit a07778
 *                                         remove any snapshot metadata.
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_DELETE_NONE               = 0,
Packit a07778
    GVIR_DOMAIN_DELETE_SAVED_STATE        = VIR_DOMAIN_UNDEFINE_MANAGED_SAVE,
Packit a07778
    GVIR_DOMAIN_DELETE_SNAPSHOTS_METADATA = VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA,
Packit a07778
} GVirDomainDeleteFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainXMLFlags:
Packit a07778
 * @GVIR_DOMAIN_XML_NONE: No flags
Packit a07778
 * @GVIR_DOMAIN_XML_SECURE: Dump security sensitive information too
Packit a07778
 * @GVIR_DOMAIN_XML_INACTIVE: Dump inactive domain information
Packit a07778
 * @GVIR_DOMAIN_XML_UPDATE_CPU: Update guest CPU requirements according to host CPU
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_XML_NONE            = 0,
Packit a07778
    GVIR_DOMAIN_XML_SECURE          = VIR_DOMAIN_XML_SECURE,
Packit a07778
    GVIR_DOMAIN_XML_INACTIVE        = VIR_DOMAIN_XML_INACTIVE,
Packit a07778
    GVIR_DOMAIN_XML_UPDATE_CPU      = VIR_DOMAIN_XML_UPDATE_CPU,
Packit a07778
} GVirDomainXMLFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainShutdownFlags:
Packit a07778
 * @GVIR_DOMAIN_SHUTDOWN_NONE: No flags, hypervisor choice
Packit a07778
 * @GVIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN: Send ACPI event
Packit a07778
 * @GVIR_DOMAIN_SHUTDOWN_GUEST_AGENT: Use guest agent
Packit a07778
 *
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_SHUTDOWN_NONE           = 0,
Packit a07778
    GVIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN = VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN,
Packit a07778
    GVIR_DOMAIN_SHUTDOWN_GUEST_AGENT    = VIR_DOMAIN_SHUTDOWN_GUEST_AGENT,
Packit a07778
} GVirDomainShutdownFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainSnapshotCreateFlags:
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_NONE: No flags
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_REDEFINE: Restore or alter metadata
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_CURRENT: With redefine, make snapshot current
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_NO_METADATA: Make snapshot without remembering it
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_HALT: Stop running guest after snapshot
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_DISK_ONLY: Disk snapshot, not system checkpoint
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_REUSE_EXT: Reuse any existing external files
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_QUIESCE: Use guest agent to quiesce all mounter
Packit a07778
 *                                file systems within the domain
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_ATOMIC: Atomically avoid partial changes
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_NONE         = 0,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_REDEFINE     = VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_CURRENT      = VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_NO_METADATA  = VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_HALT         = VIR_DOMAIN_SNAPSHOT_CREATE_HALT,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_DISK_ONLY    = VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_REUSE_EXT    = VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_QUIESCE      = VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_ATOMIC       = VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC,
Packit a07778
} GVirDomainSnapshotCreateFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainUpdateDeviceFlags:
Packit a07778
 * @GVIR_DOMAIN_UPDATE_DEVICE_CURRENT: Update current domain state
Packit a07778
 * @GVIR_DOMAIN_UPDATE_DEVICE_LIVE: Update state for only active domains
Packit a07778
 * @GVIR_DOMAIN_UPDATE_DEVICE_CONFIG: Update state for persistent state only
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_UPDATE_DEVICE_CURRENT   = VIR_DOMAIN_AFFECT_CURRENT,
Packit a07778
    GVIR_DOMAIN_UPDATE_DEVICE_LIVE      = VIR_DOMAIN_AFFECT_LIVE,
Packit a07778
    GVIR_DOMAIN_UPDATE_DEVICE_CONFIG    = VIR_DOMAIN_AFFECT_CONFIG,
Packit a07778
} GVirDomainUpdateDeviceFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainRebootFlags:
Packit a07778
 * @GVIR_DOMAIN_REBOOT_NONE: No flags, hypervisor choice
Packit a07778
 * @GVIR_DOMAIN_REBOOT_ACPI_POWER_BTN: Send ACPI event
Packit a07778
 * @GVIR_DOMAIN_REBOOT_GUEST_AGENT: Use guest agent
Packit a07778
 *
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_REBOOT_NONE           = 0,
Packit a07778
    GVIR_DOMAIN_REBOOT_ACPI_POWER_BTN = VIR_DOMAIN_REBOOT_ACPI_POWER_BTN,
Packit a07778
    GVIR_DOMAIN_REBOOT_GUEST_AGENT    = VIR_DOMAIN_REBOOT_GUEST_AGENT,
Packit a07778
} GVirDomainRebootFlags;
Packit a07778
Packit a07778
/**
Packit a07778
 * GVirDomainSnapshotListFlags:
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_ALL: List all snapshots
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS: List all descendants, not just
Packit a07778
 *                                         children, when listing a snapshot.
Packit a07778
 *                                         For historical reasons, groups do not use contiguous bits.
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_ROOTS: Filter by snapshots with no parents, when listing a domain
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_METADATA: Filter by snapshots which have metadata
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_LEAVES: Filter by snapshots with no children
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES: Filter by snapshots that have children
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA: Filter by snapshots with no metadata
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_INACTIVE: Filter by snapshots taken while guest was shut off
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_ACTIVE: Filter by snapshots taken while guest was active, and with memory state
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY: Filter by snapshots taken while guest was active, but without memory state
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_INTERNAL: Filter by snapshots stored internal to disk images
Packit a07778
 * @GVIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL: Filter by snapshots that use files external to disk images
Packit a07778
 */
Packit a07778
typedef enum {
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_ALL         = 0,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS = VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_ROOTS       = VIR_DOMAIN_SNAPSHOT_LIST_ROOTS,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_METADATA    = VIR_DOMAIN_SNAPSHOT_LIST_METADATA,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_LEAVES      = VIR_DOMAIN_SNAPSHOT_LIST_LEAVES,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES   = VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA = VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_INACTIVE    = VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_ACTIVE      = VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY   = VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_INTERNAL    = VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL,
Packit a07778
    GVIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL    = VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL
Packit a07778
} GVirDomainSnapshotListFlags;
Packit a07778
Packit a07778
typedef struct _GVirDomainInfo GVirDomainInfo;
Packit a07778
struct _GVirDomainInfo
Packit a07778
{
Packit a07778
    GVirDomainState state; /* the running state */
Packit a07778
    guint64 maxMem;        /* the maximum memory in KBytes allowed */
Packit a07778
    guint64 memory;        /* the memory in KBytes used by the domain */
Packit a07778
    guint16 nrVirtCpu;     /* the number of virtual CPUs for the domain */
Packit a07778
    guint64 cpuTime;       /* the CPU time used in nanoseconds */
Packit a07778
};
Packit a07778
Packit a07778
GType gvir_domain_get_type(void);
Packit a07778
GType gvir_domain_info_get_type(void);
Packit a07778
GType gvir_domain_handle_get_type(void);
Packit a07778
Packit a07778
const gchar *gvir_domain_get_name(GVirDomain *dom);
Packit a07778
const gchar *gvir_domain_get_uuid(GVirDomain *dom);
Packit a07778
gint gvir_domain_get_id(GVirDomain *dom,
Packit a07778
                        GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_start(GVirDomain *dom,
Packit a07778
                           guint flags,
Packit a07778
                           GError **err);
Packit a07778
void gvir_domain_start_async(GVirDomain *dom,
Packit a07778
                             guint flags,
Packit a07778
                             GCancellable *cancellable,
Packit a07778
                             GAsyncReadyCallback callback,
Packit a07778
                             gpointer user_data);
Packit a07778
gboolean gvir_domain_start_finish(GVirDomain *dom,
Packit a07778
                                  GAsyncResult *result,
Packit a07778
                                  GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_resume(GVirDomain *dom,
Packit a07778
                            GError **err);
Packit a07778
void gvir_domain_resume_async(GVirDomain *dom,
Packit a07778
                              GCancellable *cancellable,
Packit a07778
                              GAsyncReadyCallback callback,
Packit a07778
                              gpointer user_data);
Packit a07778
gboolean gvir_domain_resume_finish(GVirDomain *dom,
Packit a07778
                                   GAsyncResult *result,
Packit a07778
                                   GError **err);
Packit a07778
gboolean gvir_domain_wakeup(GVirDomain *dom,
Packit a07778
                            guint flags,
Packit a07778
                            GError **err);
Packit a07778
void gvir_domain_wakeup_async(GVirDomain *dom,
Packit a07778
                              guint flags,
Packit a07778
                              GCancellable *cancellable,
Packit a07778
                              GAsyncReadyCallback callback,
Packit a07778
                              gpointer user_data);
Packit a07778
gboolean gvir_domain_wakeup_finish(GVirDomain *dom,
Packit a07778
                                   GAsyncResult *result,
Packit a07778
                                   GError **err);
Packit a07778
gboolean gvir_domain_stop(GVirDomain *dom,
Packit a07778
                          guint flags,
Packit a07778
                          GError **err);
Packit a07778
gboolean gvir_domain_delete(GVirDomain *dom,
Packit a07778
                            guint flags,
Packit a07778
                            GError **err);
Packit a07778
gboolean gvir_domain_shutdown(GVirDomain *dom,
Packit a07778
                              guint flags,
Packit a07778
                              GError **err);
Packit a07778
gboolean gvir_domain_reboot(GVirDomain *dom,
Packit a07778
                            guint flags,
Packit a07778
                            GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_save_to_file(GVirDomain *dom,
Packit a07778
                                  gchar *filename,
Packit a07778
                                  GVirConfigDomain *custom_conf,
Packit a07778
                                  guint flags,
Packit a07778
                                  GError **err);
Packit a07778
Packit a07778
void gvir_domain_save_to_file_async(GVirDomain *dom,
Packit a07778
                                    gchar *filename,
Packit a07778
                                    GVirConfigDomain *custom_conf,
Packit a07778
                                    guint flags,
Packit a07778
                                    GCancellable *cancellable,
Packit a07778
                                    GAsyncReadyCallback callback,
Packit a07778
                                    gpointer user_data);
Packit a07778
Packit a07778
gboolean gvir_domain_save_to_file_finish(GVirDomain *dom,
Packit a07778
                                         GAsyncResult *result,
Packit a07778
                                         GError **err);
Packit a07778
Packit a07778
GVirDomainInfo *gvir_domain_get_info(GVirDomain *dom,
Packit a07778
                                     GError **err);
Packit a07778
void gvir_domain_get_info_async(GVirDomain *dom,
Packit a07778
                                GCancellable *cancellable,
Packit a07778
                                GAsyncReadyCallback callback,
Packit a07778
                                gpointer user_data);
Packit a07778
GVirDomainInfo *gvir_domain_get_info_finish(GVirDomain *dom,
Packit a07778
                                            GAsyncResult *result,
Packit a07778
                                            GError **err);
Packit a07778
Packit a07778
GVirConfigDomain *gvir_domain_get_config(GVirDomain *dom,
Packit a07778
                                         guint flags,
Packit a07778
                                         GError **err);
Packit a07778
gboolean gvir_domain_set_config(GVirDomain *domain,
Packit a07778
                                GVirConfigDomain *conf,
Packit a07778
                                GError **err);
Packit a07778
Packit a07778
gchar *gvir_domain_screenshot(GVirDomain *dom,
Packit a07778
                              GVirStream *stream,
Packit a07778
                              guint monitor_id,
Packit a07778
                              guint flags,
Packit a07778
                              GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_open_console(GVirDomain *dom,
Packit a07778
                                  GVirStream *stream,
Packit a07778
                                  const gchar *devname,
Packit a07778
                                  guint flags,
Packit a07778
                                  GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_open_graphics(GVirDomain *dom,
Packit a07778
                                   guint idx,
Packit a07778
                                   int fd,
Packit a07778
                                   unsigned int flags,
Packit a07778
                                   GError **err);
Packit a07778
int gvir_domain_open_graphics_fd(GVirDomain *dom,
Packit a07778
                                 guint idx,
Packit a07778
                                 unsigned int flags,
Packit a07778
                                 GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_suspend (GVirDomain *dom,
Packit a07778
                              GError **err);
Packit a07778
gboolean gvir_domain_save (GVirDomain *dom,
Packit a07778
                           unsigned int flags,
Packit a07778
                           GError **err);
Packit a07778
void gvir_domain_save_async (GVirDomain *dom,
Packit a07778
                             unsigned int flags,
Packit a07778
                             GCancellable *cancellable,
Packit a07778
                             GAsyncReadyCallback callback,
Packit a07778
                             gpointer user_data);
Packit a07778
gboolean gvir_domain_save_finish (GVirDomain *dom,
Packit a07778
                                  GAsyncResult *result,
Packit a07778
                                  GError **err);
Packit a07778
gboolean gvir_domain_get_persistent(GVirDomain *dom);
Packit a07778
gboolean gvir_domain_get_saved(GVirDomain *dom);
Packit a07778
Packit a07778
GList *gvir_domain_get_devices(GVirDomain *domain,
Packit a07778
                               GError **err);
Packit a07778
Packit a07778
gboolean gvir_domain_update_device(GVirDomain *dom,
Packit a07778
                                   GVirConfigDomainDevice *device,
Packit a07778
                                   guint flags,
Packit a07778
                                   GError **err);
Packit a07778
Packit a07778
GVirDomainSnapshot *
Packit a07778
gvir_domain_create_snapshot(GVirDomain *dom,
Packit a07778
                            GVirConfigDomainSnapshot *custom_conf,
Packit a07778
                            guint flags,
Packit a07778
                            GError **err);
Packit a07778
Packit a07778
void gvir_domain_create_snapshot_async(GVirDomain *dom,
Packit a07778
                                       GVirConfigDomainSnapshot *custom_conf,
Packit a07778
                                       guint flags,
Packit a07778
                                       GCancellable *cancellable,
Packit a07778
                                       GAsyncReadyCallback callback,
Packit a07778
                                       gpointer user_data);
Packit a07778
Packit a07778
GVirDomainSnapshot *gvir_domain_create_snapshot_finish(GVirDomain  *domain,
Packit a07778
                                                       GAsyncResult *result,
Packit a07778
                                                       GError **error);
Packit a07778
Packit a07778
Packit a07778
gboolean gvir_domain_fetch_snapshots(GVirDomain *dom,
Packit a07778
                                     guint list_flags,
Packit a07778
                                     GCancellable *cancellable,
Packit a07778
                                     GError **error);
Packit a07778
Packit a07778
GList *gvir_domain_get_snapshots(GVirDomain *dom);
Packit a07778
Packit a07778
void gvir_domain_fetch_snapshots_async(GVirDomain *dom,
Packit a07778
                                       guint list_flags,
Packit a07778
                                       GCancellable *cancellable,
Packit a07778
                                       GAsyncReadyCallback callback,
Packit a07778
                                       gpointer user_data);
Packit a07778
Packit a07778
gboolean gvir_domain_fetch_snapshots_finish(GVirDomain *dom,
Packit a07778
                                            GAsyncResult *res,
Packit a07778
                                            GError **error);
Packit a07778
Packit a07778
gboolean gvir_domain_get_has_current_snapshot(GVirDomain *dom,
Packit a07778
                                              guint flags,
Packit a07778
                                              gboolean *has_current_snapshot,
Packit a07778
                                              GError **error);
Packit a07778
Packit a07778
gboolean gvir_domain_set_time(GVirDomain *dom,
Packit a07778
                              GDateTime *date_time,
Packit a07778
                              guint flags,
Packit a07778
                              GError **err);
Packit a07778
void gvir_domain_set_time_async(GVirDomain *dom,
Packit a07778
                                GDateTime *date_time,
Packit a07778
                                guint flags,
Packit a07778
                                GCancellable *cancellable,
Packit a07778
                                GAsyncReadyCallback callback,
Packit a07778
                                gpointer user_data);
Packit a07778
gboolean gvir_domain_set_time_finish(GVirDomain *dom,
Packit a07778
                                     GAsyncResult *result,
Packit a07778
                                     GError **err);
Packit a07778
Packit a07778
G_END_DECLS
Packit a07778
Packit a07778
#endif /* __LIBVIRT_GOBJECT_DOMAIN_H__ */