File: input.mli

package info (click to toggle)
dose3 3.3~beta1-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,936 kB
  • ctags: 2,055
  • sloc: ml: 12,421; ansic: 433; makefile: 332; python: 164; perl: 139; sh: 43
file content (59 lines) | stat: -rw-r--r-- 2,269 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
(**************************************************************************************)
(*  Copyright (C) 2009 Pietro Abate <pietro.abate@pps.jussieu.fr>                     *)
(*  Copyright (C) 2009 Mancoosi Project                                               *)
(*                                                                                    *)
(*  This library is free software: you can redistribute it and/or modify              *)
(*  it under the terms of the GNU Lesser General Public License as                    *)
(*  published by the Free Software Foundation, either version 3 of the                *)
(*  License, or (at your option) any later version.  A special linking                *)
(*  exception to the GNU Lesser General Public License applies to this                *)
(*  library, see the COPYING file for more information.                               *)
(**************************************************************************************)

(** Input routines *)

open ExtLib

IFDEF HASZIP THEN
(** load a file in gzip format
    @return ExtLib.IO.input channel *)
val gzip_open_file : string -> IO.input
END

IFDEF HASBZ2 THEN
(** load a file in bzip format - Not implemented yet
    @return ExtLib.IO.input channel *)
val bzip_open_file : string -> IO.input
END

(** load a non compressed file  
    @return ExtLib.IO.input channel *)
val std_open_file : string -> IO.input

(** load a file either in gzip, bzip or not compressed format
    @return ExtLib.IO.input channel *)
val open_file : string -> IO.input

val open_ch : in_channel -> IO.input
val close_ch : IO.input -> unit

(** parse a uri.
    i.e. :
      deb://path/to/file
      rpm://path/to/file
      cudf://path/to/file

    @return a tuple representing the uri *)
val parse_uri : string -> (
  Url.filetypes *     (* format *)
  (string option      (* username *)
  * string option     (* password *)
  * string option     (* hostname *)
  * string option     (* port *)
  * string )          (* db name - or filename *)
  * string option     (* query string *)
  )

(** guess the input format from a list of list of uris and check
 *  if the list is omogenueous w.r.t the guessed format. Fails otherwise *)
val guess_format : string list list -> Url.filetypes