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 -->-. E1 -->-.
/ \ \
Q --->-- Q2 --> R2 -->-- R E2 -->-- E
\ / /
`-->-- Q3 --> R3 -->-' E3 -->-'
| Parameters: |
|
module Register:functor (Version_i:sigval version :inttypequerytyperesponsetypeerrorval query_of_model :Model.query -> queryval model_of_response :response ->
Model.responseval model_of_error :error -> Model.errorval bin_query :query
Bin_prot.Type_class.tval bin_read_query :query
Bin_prot.Read_ml.readerval bin_read_query_ :query
Bin_prot.Unsafe_read_c.readerval bin_read_query__ :(int -> query)
Bin_prot.Unsafe_read_c.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_ml.writerval bin_write_query_ :query
Bin_prot.Unsafe_write_c.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_ml.readerval bin_read_response_ :response
Bin_prot.Unsafe_read_c.readerval bin_read_response__ :(int -> response)
Bin_prot.Unsafe_read_c.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_ml.writerval bin_write_response_ :response
Bin_prot.Unsafe_write_c.writerval bin_writer_response :response
Bin_prot.Type_class.writerval bin_error :error
Bin_prot.Type_class.tval bin_read_error :error
Bin_prot.Read_ml.readerval bin_read_error_ :error
Bin_prot.Unsafe_read_c.readerval bin_read_error__ :(int -> error)
Bin_prot.Unsafe_read_c.readerval bin_reader_error :error
Bin_prot.Type_class.readerval bin_size_error :error
Bin_prot.Size.sizerval bin_write_error :error
Bin_prot.Write_ml.writerval bin_write_error_ :error
Bin_prot.Unsafe_write_c.writerval bin_writer_error :error
Bin_prot.Type_class.writerend) ->sig..end
dispatch_multi.
include Versioned_rpc.Caller_converts.Pipe_rpc.S