Plasma GitLab Archive
Projects Blog Knowledge

sig
  exception FTP_error of exn
  exception FTP_protocol_violation of string
  type cmd_state =
      [ `Init
      | `Pass_acct_seq
      | `Perm_failure
      | `Preliminary
      | `Proto_error
      | `Rename_seq
      | `Restart_seq
      | `Success
      | `Temp_failure
      | `User_acct_seq
      | `User_pass_seq ]
  type port =
      [ `Active of string * int * Unix.file_descr
      | `Passive of string * int
      | `Unspecified ]
  type form_code = [ `ASA | `Non_print | `Telnet ]
  type representation =
      [ `ASCII of Ftp_client.form_code option
      | `EBCDIC of Ftp_client.form_code option
      | `Image ]
  type structure = [ `File_structure | `Record_structure ]
  type transmission_mode = [ `Block_mode | `Stream_mode ]
  type ftp_state = {
    cmd_state : Ftp_client.cmd_state;
    ftp_connected : bool;
    ftp_data_conn : bool;
    ftp_user : string option;
    ftp_password : string option;
    ftp_account : string option;
    ftp_logged_in : bool;
    ftp_port : Ftp_client.port;
    ftp_repr : Ftp_client.representation;
    ftp_structure : Ftp_client.structure;
    ftp_trans : Ftp_client.transmission_mode;
    ftp_dir : string list;
    ftp_features : (string * string option) list option;
    ftp_options : (string * string option) list;
  }
  type cmd =
      [ `ACCT of string
      | `ALLO of int * int option
      | `APPE of
          string * (Ftp_client.ftp_state -> Ftp_data_endpoint.local_sender)
      | `CDUP
      | `CWD of string
      | `Connect
      | `DELE of string
      | `Dummy
      | `FEAT
      | `HELP of string option
      | `LIST of
          string option *
          (Ftp_client.ftp_state -> Ftp_data_endpoint.local_receiver)
      | `MDTM of string
      | `MKD of string
      | `MODE of Ftp_client.transmission_mode
      | `NLST of
          string option *
          (Ftp_client.ftp_state -> Ftp_data_endpoint.local_receiver)
      | `NOOP
      | `OPTS of string * string option
      | `PASS of string
      | `PASV
      | `PORT
      | `PWD
      | `QUIT
      | `REIN
      | `REST of string
      | `RETR of
          string * (Ftp_client.ftp_state -> Ftp_data_endpoint.local_receiver)
      | `RMD of string
      | `RNFR of string
      | `RNTO of string
      | `SITE of string
      | `SMNT of string
      | `STAT of string option
      | `STOR of
          string * (Ftp_client.ftp_state -> Ftp_data_endpoint.local_sender)
      | `STOU of unit -> Ftp_data_endpoint.local_sender
      | `STRU of Ftp_client.structure
      | `SYST
      | `TYPE of Ftp_client.representation
      | `USER of string ]
  type reply = int * string
  class ftp_client_pi :
    ?event_system:Unixqueue.event_system ->
    ?onempty:(Ftp_client.ftp_state -> unit) ->
    ?onclose:(unit -> unit) ->
    ?onerrorstate:(exn -> unit) ->
    ?onusererror:(exn -> unit) ->
    Unix.file_descr ->
    object
      method abort : unit -> unit
      method add_cmd :
        ?onreply:(Ftp_client.ftp_state -> Ftp_client.reply -> unit) ->
        Ftp_client.cmd -> unit
      method event_system : Unixqueue.event_system
      method ftp_state : Ftp_client.ftp_state
      method is_empty : bool
      method run : unit -> unit
      method send_abort : unit -> unit
      method state : unit Uq_engines.engine_state
    end
  module Action :
    sig
      type plan
      type action = Ftp_client.Action.plan -> unit
      val ftp_state : Ftp_client.Action.plan -> Ftp_client.ftp_state
      val execute :
        onreply:(Ftp_client.ftp_state -> Ftp_client.reply -> unit) ->
        onerror:(Ftp_client.ftp_state -> Ftp_client.reply -> unit) ->
        Ftp_client.ftp_client_pi -> Ftp_client.Action.action -> unit
      val empty : Ftp_client.Action.action
      val command : Ftp_client.cmd -> Ftp_client.Action.action
      val dyn_command : (unit -> Ftp_client.cmd) -> Ftp_client.Action.action
      val seq2 :
        Ftp_client.Action.action ->
        Ftp_client.Action.action -> Ftp_client.Action.action
      val full_seq2 :
        Ftp_client.Action.action ->
        (Ftp_client.reply -> Ftp_client.Action.action) ->
        Ftp_client.Action.action
      val seq : Ftp_client.Action.action list -> Ftp_client.Action.action
      val expect :
        Ftp_client.cmd_state ->
        Ftp_client.Action.action -> Ftp_client.Action.action
      val seq2_case :
        Ftp_client.Action.action ->
        (Ftp_client.cmd_state * Ftp_client.Action.action) list ->
        Ftp_client.Action.action
    end
  class type ftp_method =
    object
      method connect : (string * int) option
      method execute : Ftp_client.Action.action
    end
  exception FTP_method_temp_failure of int * string
  exception FTP_method_perm_failure of int * string
  exception FTP_method_unexpected_reply of int * string
  class connect_method : host:string -> ?port:int -> unit -> ftp_method
  class login_method :
    user:string ->
    get_password:(unit -> string) ->
    get_account:(unit -> string) -> unit -> ftp_method
  class walk_method :
    [ `Dir of string | `File of string | `Stay ] -> ftp_method
  type filename = [ `NVFS of string | `Verbatim of string ]
  class get_method :
    file:Ftp_client.filename ->
    representation:Ftp_client.representation ->
    store:(Ftp_client.ftp_state -> Ftp_data_endpoint.local_receiver) ->
    unit -> ftp_method
  class invoke_method :
    command:Ftp_client.cmd ->
    process_result:(Ftp_client.ftp_state -> int * string -> unit) ->
    unit -> ftp_method
  class set_structure_method : Ftp_client.structure -> ftp_method
  class set_mode_method : Ftp_client.transmission_mode -> ftp_method
  class rename_method :
    file_from:Ftp_client.filename ->
    file_to:Ftp_client.filename -> unit -> ftp_method
  class mkdir_method : Ftp_client.filename -> ftp_method
  class rmdir_method : Ftp_client.filename -> ftp_method
  class delete_method : Ftp_client.filename -> ftp_method
  class list_method :
    dir:Ftp_client.filename ->
    representation:Ftp_client.representation ->
    store:(Ftp_client.ftp_state -> Ftp_data_endpoint.local_receiver) ->
    unit -> ftp_method
  class nlst_method :
    dir:Ftp_client.filename ->
    representation:Ftp_client.representation ->
    store:(Ftp_client.ftp_state -> Ftp_data_endpoint.local_receiver) ->
    unit -> ftp_method
  class mdtm_method :
    file:Ftp_client.filename ->
    process_result:(float -> unit) -> unit -> ftp_method
  class ftp_client :
    ?event_system:Unixqueue.event_system ->
    ?onempty:(unit -> unit) ->
    unit ->
    object
      method abort : unit -> unit
      method add :
        ?onsuccess:(unit -> unit) ->
        ?onerror:(exn -> unit) -> Ftp_client.ftp_method -> unit
      method event_system : Unixqueue.event_system
      method request_notification : (unit -> bool) -> unit
      method run : unit -> unit
      method state : unit Uq_engines.engine_state
    end
  module Debug : sig val enable : bool Pervasives.ref end
end
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml