X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=slave.mli;h=406e9dba8356ab110a06120541288cafa2bd9719;hb=e0047b09f88dcfa6dd9e771caf57a744095321f2;hp=d36ef040ab7e9a0ba287bc119209234be0dc3caa;hpb=b9e8c84588873568b7fdfaeb9beb85466e84c8fa;p=guestfs-browser.git diff --git a/slave.mli b/slave.mli index d36ef04..406e9db 100644 --- a/slave.mli +++ b/slave.mli @@ -54,9 +54,10 @@ type 'a callback = 'a -> unit list callback], and a command that returns nothing would have callback type [unit callback]. - Note that errors are not returned this way. Errors result - in the command queue being discarded and the failure_hook - function being called. *) + Note that errors are not returned this way. Each function can + optionally supply an extra callback to handle errors, or if + not supplied then it defaults to the failure hook set by + {!set_failure_hook}. *) val no_callback : 'a callback (** The main thread uses this as a callback if it doesn't care about @@ -69,7 +70,7 @@ type domain = { } (** List of domains as returned in the {!connect} callback. *) -val connect : string option -> domain list callback -> unit +val connect : ?fail:exn callback -> string option -> domain list callback -> unit (** [connect uri cb] causes the slave thread to disconnect from libvirt and connect to the libvirt [uri]. If this succeeds, then the list of all domains fetched from libvirt and [cb] is @@ -77,7 +78,10 @@ val connect : string option -> domain list callback -> unit Although you can connect to remote hosts, libguestfs won't usually be able to see the drives on those hosts, so it normally - doesn't make sense to use remote URIs. *) + doesn't make sense to use remote URIs. + + If [fail] is passed, then failures cause this callback to + be called. If not, the global failure hook is called. *) type inspection_data = { insp_all_filesystems : (string * string) list; @@ -101,9 +105,14 @@ and inspection_os = { insp_product_name : string; insp_type : string; insp_windows_systemroot : string option; + insp_winreg_DEFAULT : string option; (* registry files *) + insp_winreg_SAM : string option; + insp_winreg_SECURITY : string option; + insp_winreg_SOFTWARE : string option; + insp_winreg_SYSTEM : string option; } -val open_domain : string -> inspection_data callback -> unit +val open_domain : ?fail:exn callback -> string -> inspection_data callback -> unit (** [open_domain name cb] retrieves the list of block devices for the libvirt domain [name], creates a libguestfs handle, adds those block devices, launches the handle, and performs @@ -113,11 +122,18 @@ val open_domain : string -> inspection_data callback -> unit with the list of filesystems and the results of inspection. The slave thread must be connected to libvirt (see {!connect}) - else this command will fail. *) + else this command will fail. + + If [fail] is passed, then failures cause this callback to + be called. If not, the global failure hook is called. *) -val open_images : string list -> inspection_data callback -> unit - (** [open_images images cb] is like {!open_domain} except - that it opens local disk image(s) directly. *) +val open_images : ?fail:exn callback -> (string * string option) list -> inspection_data callback -> unit + (** [open_images images cb] is like {!open_domain} except that it + opens local disk image(s) directly. [images] is a list of + [(filename, format)] pairs. + + If [fail] is passed, then failures cause this callback to + be called. If not, the global failure hook is called. *) type source = OS of inspection_os | Volume of string (** Source type used by {!read_directory}. *) @@ -129,7 +145,7 @@ type direntry = { } (** Directory entry returned by {!read_directory}. *) -val read_directory : source -> string -> direntry list callback -> unit +val read_directory : ?fail:exn callback -> source -> string -> direntry list callback -> unit (** [read_directory src dir cb] reads the contents of the directory [dir] from source [src], and calls the callback function [cb] with the resulting list of directory entries, if successful. @@ -138,7 +154,35 @@ val read_directory : source -> string -> direntry list callback -> unit dev]), or a fully mounted up operating system (if [src] is [OS ...]). In the second case all the mountpoints of the operating system are mounted up so that the path may span mountpoints in the - natural way. *) + natural way. + + If [fail] is passed, then failures cause this callback to + be called. If not, the global failure hook is called. *) + +val download_file : ?fail:exn callback -> source -> string -> string -> unit callback -> unit + (** [download_file src pathname localfile cb] downloads [pathname] + to the named local file, and then calls the callback function. *) + +type download_dir_tarball_format = Tar | TGZ | TXZ + +val download_dir_tarball : ?fail:exn callback -> source -> string -> download_dir_tarball_format -> string -> unit callback -> unit + (** [download_dir_tarball_format src pathname format localfile cb] + downloads directory [pathname] to the named local file (a + tarball), and then calls the callback function. + + [format] controls the download format, which is one of + uncompressed tar, gzip-compressed tar, or xz-compressed tar. *) + +val download_dir_find0 : ?fail:exn callback -> source -> string -> string -> unit callback -> unit + (** [download_dir_find0 src pathname localfile cb] downloads the + list of filenames of directory [pathname] to the named local + file (a ASCII NUL-separated text file), and then calls the + callback function. *) + +val disk_usage : ?fail:exn callback -> source -> string -> int64 callback -> unit + (** [disk_usage src pathname cb] calculates the disk usage of + directory [pathname] and calls the callback with the answer + (size of {b kilobytes}). *) val discard_command_queue : unit -> unit (** [discard_command_queue ()] discards any commands on the command @@ -166,7 +210,9 @@ val exit_thread : unit -> unit and display those in the main thread. {!set_busy_hook} and {!set_idle_hook} are used to implement a - "throbber". *) + "throbber". + + {!set_progress_hook} is used to implement a progress bar. *) val set_failure_hook : exn callback -> unit (** Set the function in the main thread which is called if there is @@ -181,3 +227,14 @@ val set_idle_hook : unit callback -> unit (** Set the function in the main thread which is called whenever the slave thread stops working on a command {i and} has no more commands left in the queue to work on. *) + +val set_status_hook : string callback -> unit + (** Set the function in the main thread which is called to + update the status bar. The slave thread updates the + status bar when an operation starts or stops, keeping the + user informed of what is happening. *) + +val set_progress_hook : (int64 * int64) callback -> unit + (** Set the function in the main thread which is called whenever + the slave thread receives a progress notification message + from libguestfs. *)