module Make:
implement_multi
in terms of that model and a mechanism for
registering the individual versions that implement_multi
knows
about. Registration requires knowing how to get into and out of
the model.
Q1 -->-. ,-->-- R1 \ / Q2 -->-- Q --> R --->-- R2 / \ Q3 -->-' `-->-- R3
Parameters: |
|
module Register:functor (
Version_i
:
sig
val version :int
type
query
type
response
type
error
val model_of_query :query -> Model.query
val response_of_model :Model.response ->
responseval 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
implement_multi
.
include Versioned_rpc.Callee_converts.Pipe_rpc.S