sig
module Caller_converts :
sig
module Rpc :
sig
module type S =
sig
type query
type response
val dispatch_multi :
version:int ->
Rpc.Connection.t ->
query -> response Core.Std.Or_error.t Import.Deferred.t
val versions : unit -> Core.Std.Int.Set.t
end
module Make :
functor
(Model : sig val name : string type query type response end) ->
sig
module Register :
functor
(Version_i : sig
val version : int
type query
type response
val query_of_model : Model.query -> query
val model_of_response :
response -> Model.response
val bin_query :
query Core.Std.Bin_prot.Type_class.t
val bin_read_query :
query Core.Std.Bin_prot.Read_ml.reader
val bin_read_query_ :
query
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_query__ :
(int -> query)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_query :
query
Core.Std.Bin_prot.Type_class.reader
val bin_size_query :
query Core.Std.Bin_prot.Size.sizer
val bin_write_query :
query Core.Std.Bin_prot.Write_ml.writer
val bin_write_query_ :
query
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_query :
query
Core.Std.Bin_prot.Type_class.writer
val bin_response :
response Core.Std.Bin_prot.Type_class.t
val bin_read_response :
response
Core.Std.Bin_prot.Read_ml.reader
val bin_read_response_ :
response
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_response__ :
(int -> response)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_response :
response
Core.Std.Bin_prot.Type_class.reader
val bin_size_response :
response Core.Std.Bin_prot.Size.sizer
val bin_write_response :
response
Core.Std.Bin_prot.Write_ml.writer
val bin_write_response_ :
response
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_response :
response
Core.Std.Bin_prot.Type_class.writer
end) ->
sig
val rpc :
(Version_i.query, Version_i.response) Rpc.Rpc.t
end
val dispatch_multi :
version:int ->
Rpc.Connection.t ->
Model.query ->
Model.response Core.Std.Or_error.t Import.Deferred.t
val versions : unit -> Core.Std.Int.Set.t
end
end
module Pipe_rpc :
sig
module type S =
sig
type query
type response
type error
val dispatch_multi :
version:int ->
Rpc.Connection.t ->
query ->
(response Core.Std.Or_error.t Import.Pipe.Reader.t *
Rpc.Pipe_rpc.Id.t, error)
Core.Std.Result.t Core.Std.Or_error.t Import.Deferred.t
val versions : unit -> Core.Std.Int.Set.t
end
module Make :
functor
(Model : sig
val name : string
type query
type response
type error
end) ->
sig
module Register :
functor
(Version_i : sig
val version : int
type query
type response
type error
val query_of_model : Model.query -> query
val model_of_response :
response -> Model.response
val model_of_error : error -> Model.error
val bin_query :
query Core.Std.Bin_prot.Type_class.t
val bin_read_query :
query Core.Std.Bin_prot.Read_ml.reader
val bin_read_query_ :
query
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_query__ :
(int -> query)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_query :
query
Core.Std.Bin_prot.Type_class.reader
val bin_size_query :
query Core.Std.Bin_prot.Size.sizer
val bin_write_query :
query Core.Std.Bin_prot.Write_ml.writer
val bin_write_query_ :
query
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_query :
query
Core.Std.Bin_prot.Type_class.writer
val bin_response :
response Core.Std.Bin_prot.Type_class.t
val bin_read_response :
response
Core.Std.Bin_prot.Read_ml.reader
val bin_read_response_ :
response
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_response__ :
(int -> response)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_response :
response
Core.Std.Bin_prot.Type_class.reader
val bin_size_response :
response Core.Std.Bin_prot.Size.sizer
val bin_write_response :
response
Core.Std.Bin_prot.Write_ml.writer
val bin_write_response_ :
response
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_response :
response
Core.Std.Bin_prot.Type_class.writer
val bin_error :
error Core.Std.Bin_prot.Type_class.t
val bin_read_error :
error Core.Std.Bin_prot.Read_ml.reader
val bin_read_error_ :
error
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_error__ :
(int -> error)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_error :
error
Core.Std.Bin_prot.Type_class.reader
val bin_size_error :
error Core.Std.Bin_prot.Size.sizer
val bin_write_error :
error Core.Std.Bin_prot.Write_ml.writer
val bin_write_error_ :
error
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_error :
error
Core.Std.Bin_prot.Type_class.writer
end) ->
sig
val rpc :
(Version_i.query, Version_i.response,
Version_i.error)
Rpc.Pipe_rpc.t
end
val dispatch_multi :
version:int ->
Rpc.Connection.t ->
Model.query ->
(Model.response Core.Std.Or_error.t Import.Pipe.Reader.t *
Rpc.Pipe_rpc.Id.t, Model.error)
Core.Std.Result.t Core.Std.Or_error.t Import.Deferred.t
val versions : unit -> Core.Std.Int.Set.t
end
end
end
module Callee_converts :
sig
module type S =
sig
type query
type response
val implement_multi :
?log_not_previously_seen_version:(name:string -> int -> unit) ->
('state -> query -> response Import.Deferred.t) ->
'state Rpc.Implementation.t list
val versions : unit -> Core.Std.Int.Set.t
end
module Make :
functor
(Model : sig val name : string type query type response end) ->
sig
module Register :
functor
(Version_i : sig
val version : int
type query
type response
val model_of_query : query -> Model.query
val response_of_model :
Model.response -> response
val bin_query :
query Core.Std.Bin_prot.Type_class.t
val bin_read_query :
query Core.Std.Bin_prot.Read_ml.reader
val bin_read_query_ :
query Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_query__ :
(int -> query)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_query :
query Core.Std.Bin_prot.Type_class.reader
val bin_size_query :
query Core.Std.Bin_prot.Size.sizer
val bin_write_query :
query Core.Std.Bin_prot.Write_ml.writer
val bin_write_query_ :
query
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_query :
query Core.Std.Bin_prot.Type_class.writer
val bin_response :
response Core.Std.Bin_prot.Type_class.t
val bin_read_response :
response Core.Std.Bin_prot.Read_ml.reader
val bin_read_response_ :
response
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_read_response__ :
(int -> response)
Core.Std.Bin_prot.Unsafe_read_c.reader
val bin_reader_response :
response Core.Std.Bin_prot.Type_class.reader
val bin_size_response :
response Core.Std.Bin_prot.Size.sizer
val bin_write_response :
response Core.Std.Bin_prot.Write_ml.writer
val bin_write_response_ :
response
Core.Std.Bin_prot.Unsafe_write_c.writer
val bin_writer_response :
response Core.Std.Bin_prot.Type_class.writer
end) ->
sig
val rpc : (Version_i.query, Version_i.response) Rpc.Rpc.t
end
val implement_multi :
?log_not_previously_seen_version:(name:string -> int -> unit) ->
('state -> Model.query -> Model.response Import.Deferred.t) ->
'state Rpc.Implementation.t list
val versions : unit -> Core.Std.Int.Set.t
end
end
module Menu :
sig
type t = Versioned_rpc.Menu.t
val add : 's Rpc.Implementation.t list -> 's Rpc.Implementation.t list
val request :
Rpc.Connection.t -> t Core.Std.Or_error.t Import.Deferred.t
val supported_rpcs : t -> Rpc.Implementation.Description.t list
val supported_versions : t -> rpc_name:string -> Core.Std.Int.Set.t
end
val ounit_tests : unit -> OUnit.test
end