configure: Fix perldoc detection.
[guestfs-browser.git] / filetree_type.mli
index 590b635..b5c642a 100644 (file)
@@ -16,7 +16,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *)
 
-(** This is the base class for the file tree.
+(** This is the base module for the file tree.
 
     The types and functions in this file should be considered
     private to the file tree implementation.
@@ -43,6 +43,7 @@ and hdata = {
   mutable state : state_t;
   content : content_t;
   mutable visited : bool;
+  mutable hiveh : Hivex.t option;
 }
 
 (* The type of the hidden column used to implement on-demand loading.
@@ -61,9 +62,13 @@ and content_t =
   | Loading                          (* special "loading ..." node *)
   | ErrorMessage of string           (* error message node *)
   | Info of string                   (* information node (eg. disk usage) *)
-  | Top of Slave.source              (* top level OS or volume node *)
-  | Directory of Slave.direntry      (* a directory *)
-  | File of Slave.direntry           (* a file inc. special files *)
+  | Top of Slave_types.source        (* top level OS or volume node *)
+                                     (* top level Windows Registry node *)
+  | TopWinReg of Slave_types.source * string * string * string
+  | Directory of Slave_types.direntry(* a directory *)
+  | File of Slave_types.direntry     (* a file inc. special files *)
+  | RegKey of Hivex.node             (* a registry key (like a dir) *)
+  | RegValue of Hivex.value          (* a registry value (like a file) *)
 
 val store_hdata : t -> Gtk.tree_iter -> hdata -> unit
 val get_hdata : t -> Gtk.tree_iter -> hdata
@@ -75,13 +80,18 @@ val find_child_node_by_content : t -> Gtk.tree_iter -> content_t -> Gtk.tree_ite
      [hdata.content] and returns that child.  If no child found,
      raises [Not_found]. *)
 
-val get_pathname : t -> Gtk.tree_iter -> Slave.source * string
+val get_pathname : t -> Gtk.tree_iter -> Slave_types.source * string
   (* Get the full path to a row by chasing up through the tree to the
      top.  This also returns the source (eg. operating system or single
      volume). *)
 
-val markup_of_name : ?visited:bool -> Slave.direntry -> string
-  (* Create markup for filenames. *)
+val get_registry_path : t -> Gtk.tree_iter -> (Slave_types.source * string * string * string) * string list
+  (* Get the path to the top from a registry key.  This returns the
+     pair [(TopWinReg_data, path)] where [TopWinReg_data] is the data
+     inside a {!TopWinReg} node, and [path] is the path (list of node
+     names) up to the top.  You normally need to call {!List.rev} on
+     [path]. *)
 
-val set_visited : t -> Gtk.tree_iter -> unit
-  (* Set a file as visited. *)
+val cache_registry_file : ?fail:exn Slave.callback -> t -> Gtk.tree_path -> Slave_types.source -> string -> string -> unit Slave.callback -> unit
+  (* This is called whenever we need the registry cache file and we
+     can't be sure that it has already been downloaded. *)