module Make:
dispatch_multi
in terms of that model and a mechanism for registering the individual
versions that dispatch_multi
knows about. Registration requires
knowing how to get into and out of the model.
,-->-- Q1 --> R1 -->-. / \ Q --->-- Q2 --> R2 -->-- R \ / `-->-- Q3 --> R3 -->-'
Parameters: |
|
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
Bin_prot.Type_class.tval bin_read_query :query
Bin_prot.Read.readerval __bin_read_query__ :(int -> query)
Bin_prot.Read.readerval bin_reader_query :query
Bin_prot.Type_class.readerval bin_size_query :query
Bin_prot.Size.sizerval bin_write_query :query
Bin_prot.Write.writerval bin_writer_query :query
Bin_prot.Type_class.writerval bin_response :response
Bin_prot.Type_class.tval bin_read_response :response
Bin_prot.Read.readerval __bin_read_response__ :(int -> response)
Bin_prot.Read.readerval bin_reader_response :response
Bin_prot.Type_class.readerval bin_size_response :response
Bin_prot.Size.sizerval bin_write_response :response
Bin_prot.Write.writerval bin_writer_response :response
Bin_prot.Type_class.writerend
) ->
sig
..end
dispatch_multi
.
include Versioned_rpc.Caller_converts.Rpc.S