<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Audio" rel="Chapter" href="Audio.html"> <link title="Image" rel="Chapter" href="Image.html"> <link title="MIDI" rel="Chapter" href="MIDI.html"> <link title="Ringbuffer" rel="Chapter" href="Ringbuffer.html"> <link title="Synth" rel="Chapter" href="Synth.html"> <link title="Video" rel="Chapter" href="Video.html"><title>Ringbuffer</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Elt</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create : unit <span class="keywordsign">-></span> <span class="constructor">Ringbuffer</span>.<span class="constructor">Elt</span>.t<br> <span class="keyword">val</span> blit :<br> <span class="constructor">Ringbuffer</span>.<span class="constructor">Elt</span>.t array <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Ringbuffer</span>.<span class="constructor">Elt</span>.t array <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">R</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> buffer = <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.elt array<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t<br> <span class="keyword">val</span> read_space : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> write_space : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> read_advance : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> write_advance : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> read : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> peek : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> write : <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> transmit :<br> <span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.t <span class="keywordsign">-></span> (<span class="constructor">Ringbuffer</span>.<span class="constructor">R</span>.buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">E</span> : <span class="constructor">Elt</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt = <span class="constructor">E</span>.t<br> <span class="keyword">type</span> buffer = elt array<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> read_space : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> write_space : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> read_advance : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> write_advance : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> read : t <span class="keywordsign">-></span> buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> peek : t <span class="keywordsign">-></span> buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> write : t <span class="keywordsign">-></span> buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> transmit : t <span class="keywordsign">-></span> (buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make_ext</span> :<br> <span class="keyword">functor</span> (<span class="constructor">E</span> : <span class="constructor">Elt</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt = <span class="constructor">E</span>.t<br> <span class="keyword">type</span> buffer = elt array<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> read_space : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> write_space : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> read_advance : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> write_advance : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> read : t <span class="keywordsign">-></span> buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> peek : t <span class="keywordsign">-></span> buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> write : t <span class="keywordsign">-></span> buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> transmit : t <span class="keywordsign">-></span> (buffer <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>