Module Tjr_minifs.Nfs_client
NFS client: pass requests over the network to a server
type 'w internal_marshal_err
=
{
internal_marshal_err : a. string -> ('a, 'w) Tjr_monad.m;
}
This is used to indicate that the result of a call was not what was expected
val mk_client_ops : monad_ops:'w Tjr_monad.monad_ops -> internal_marshal_err:'w internal_marshal_err -> call:(Minifs_intf.Msgs.msg_from_client -> (Minifs_intf.Msgs.msg_from_server, 'w) Tjr_monad.m) -> data_length:(Minifs_intf.Msgs.data -> int) -> data_of_buffer:(buffer:Tjr_minifs__Minifs_intf.buf -> off:int -> len:int -> Minifs_intf.Msgs.data) -> blit_data_to_buffer:(data:Minifs_intf.Msgs.data -> buffer:Tjr_minifs__Minifs_intf.buf -> boff:int -> unit) -> i2dh:(Minifs_intf.Msgs.dh -> 'a) -> dh2i:('a -> Minifs_intf.Msgs.dh) -> i2fd:(Minifs_intf.Msgs.fd -> 'b) -> fd2i:('b -> Minifs_intf.Msgs.fd) -> ('b, 'a, 'w) Minifs_intf.ops
Construct a message, send to server, and wait for response
val mk_client_ops : monad_ops:'a Tjr_monad.monad_ops -> internal_marshal_err:'a internal_marshal_err -> call:(Minifs_intf.Msgs.msg_from_client -> (Minifs_intf.Msgs.msg_from_server, 'a) Tjr_monad.m) -> i2dh:(Minifs_intf.Msgs.dh -> 'b) -> dh2i:('b -> Minifs_intf.Msgs.dh) -> i2fd:(Minifs_intf.Msgs.fd -> 'c) -> fd2i:('c -> Minifs_intf.Msgs.fd) -> ('c, 'b, 'a) Minifs_intf.ops
Specialize mk_client_ops using standard buffer auxiliary functions
module State_passing_call : sig ... end
We also need to implement call: msg_from_client->msg_from_server m; here we specialize to state_passing monad, and Unix network connections