Ocaml library for accessing Amazon S3 - Lwt version
Module Aws_s3_lwt . Io . Pipe
type ('a, 'b) pipe

Generic pipe

type 'a writer = ( 'a, {writer_phantom}3 ) pipe
type 'a reader = ( 'a, {reader_phantom}4 ) pipe
val create_reader : f:( 'a writer -> unit Deferred.t ) -> 'a reader

Create a reader given a function f that fills the reader. Once f completes, the reader is closed

val create_writer : f:( 'a reader -> unit Deferred.t ) -> 'a writer

Create a writer given a function f that reads off the writer. Once f completes, the writer is closed

val create : unit -> 'a reader * 'a writer

Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.

val flush : 'a writer -> unit Deferred.t

Flush a writer. The result we be determined once all elements in the pipe has been consumed

val write : 'a writer -> 'a -> unit Deferred.t

Write to a writer. If the writer is closed, the function raises an exception

val close : 'a writer -> unit

Close a writer

val close_reader : 'a reader -> unit

Close a reader

val read : 'a reader -> 'a option Deferred.t

Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None is returned

val transfer : 'a reader -> 'a writer -> unit Deferred.t

Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed

val is_closed : ( 'a, 'b ) pipe -> bool

Return the state of a pipe

val closed : ( 'a, 'b ) pipe -> unit Deferred.t

Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.

Note that not all elements may have been consumed yet.