Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file implementation_types.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187openCore_kernelopenAsync_kernelopenProtocol(** The types of the [Implementation] and [Implementations] modules, which have
a dependency cyle: [Implementation] -> [Direct_stream_writer] ->
[Implementations] -> [Implementation]. *)moduleDirect_stream_writer_id=Unique_id.Int63()modulerecImplementation:sigmoduleExpert:sigmoduleResponder:sigtypet={query_id:Query_id.t;writer:Transport.Writer.t;mutableresponded:bool}endtypeimplementation_result=|Replied|Delayed_responseofunitDeferred.tendmoduleF:sigtype(_,_)result_mode=|Blocking:('a,'a)result_mode|Deferred:('a,'aDeferred.t)result_modetype('connection_state,'query,'init,'update)streaming_impl=|Pipeof('connection_state->'query->('init*'updatePipe.Reader.t,'init)Result.tDeferred.t)|Directof('connection_state->'query->'updateDirect_stream_writer.t->('init,'init)Result.tDeferred.t)type'connection_statet=|One_way:'msgBin_prot.Type_class.reader*('connection_state->'msg->unit)->'connection_statet|One_way_expert:('connection_state->Bigstring.t->pos:int->len:int->unit)->'connection_statet|Rpc:'queryBin_prot.Type_class.reader*'responseBin_prot.Type_class.writer*('connection_state->'query->'result)*('response,'result)result_mode->'connection_statet|Rpc_expert:('connection_state->Expert.Responder.t->Bigstring.t->pos:int->len:int->'result)*(Expert.implementation_result,'result)result_mode->'connection_statet|Streaming_rpc:'queryBin_prot.Type_class.reader*'initBin_prot.Type_class.writer*'updateBin_prot.Type_class.writer*('connection_state,'query,'init,'update)streaming_impl->'connection_statetendtype'connection_statet={tag:Rpc_tag.t;version:int;f:'connection_stateF.t}end=ImplementationandImplementations:sigtype'connection_stateon_unknown_rpc=[`Raise|`Continue|`Close_connection|`Callof('connection_state->rpc_tag:string->version:int->[`Close_connection|`Continue])|`Expertof('connection_state->rpc_tag:string->version:int->Implementation.Expert.Responder.t->Bigstring.t->pos:int->len:int->unitDeferred.t)]type'connection_statet={implementations:'connection_stateImplementation.F.tDescription.Table.t;on_unknown_rpc:'connection_stateon_unknown_rpc}type'connection_stateimplementations='connection_statetmodulerecInstance:sigtypestreaming_response=|Pipe:_Pipe.Reader.t->streaming_response|Direct:_Direct_stream_writer.t->streaming_responsetype'aunpacked={implementations:'aimplementations;writer:Transport.Writer.t;open_streaming_responses:(Query_id.t,streaming_response)Hashtbl.t;mutablestopped:bool;connection_state:'a;connection_description:Info.t;connection_close_started:Info.tDeferred.t;mutablelast_dispatched_implementation:(Description.t*'aImplementation.F.t)option;packed_self:t}andt=T:_unpacked->tendend=ImplementationsandDirect_stream_writer:sigmodulePending_response:sigtype'at=|Normalof'a|ExpertofstringendmoduleState:sigtype'at=|Not_startedof'aPending_response.tQueue.t|StartedendmoduleId=Direct_stream_writer_idtype'at={id:Id.t;mutablestate:'aState.t;closed:unitIvar.t;instance:Implementations.Instance.t;query_id:Query_id.t;stream_writer:'aCached_stream_writer.t;groups:'agroup_entryBag.t}and'agroup_entry={group:'aDirect_stream_writer.Group.t;element_in_group:'atBag.Elt.t}moduleGroup:sigtype'adirect_stream_writer='attype'at=(* [components] is only tracked separately from [components_by_id] so we can iterate
over its elements more quickly than we could iterate over the values of
[components_by_id]. *){mutablecomponents:'adirect_stream_writerBag.t;components_by_id:'acomponentId.Table.t;buffer:Bigstring.tref}and'acomponent={writer_element_in_group:'adirect_stream_writerBag.Elt.t;group_element_in_writer:'agroup_entryBag.Elt.t}endwithtype'adirect_stream_writer:='atend=Direct_stream_writerandCached_stream_writer:sigtype'at={header_prefix:string(* Bin_protted constant prefix of the message *);mutabledata_len:Nat0.t;bin_writer:'aBin_prot.Type_class.writer}end=Cached_stream_writer