| 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 *)
+ | Top of Slave_types.source (* top level OS or volume node *)
(* top level Windows Registry node *)
- | TopWinReg of Slave.source * string * string * string
- | Directory of Slave.direntry (* a directory *)
- | File of Slave.direntry (* a file inc. special files *)
+ | 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) *)
[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 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 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. *)