chronos/apps/http/httpbodyrw

Source   Edit  

Types

HttpBodyReader = ref object of AsyncStreamReader
  bstate*: HttpState
  streams*: seq[AsyncStreamReader]
Source   Edit  
HttpBodyWriter = ref object of AsyncStreamWriter
  bstate*: HttpState
  streams*: seq[AsyncStreamWriter]
Source   Edit  

Consts

HttpBodyReaderTrackerName = "http.body.reader"
HTTP body reader leaks tracker name Source   Edit  
HttpBodyWriterTrackerName = "http.body.writer"
HTTP body writer leaks tracker name Source   Edit  

Procs

proc closed(bstream: HttpBodyReader | HttpBodyWriter): bool {....raises: [].}
Source   Edit  
proc closeWait(bstream: HttpBodyReader): InternalRaisesFuture[void, void] {.
    ...stackTrace: false, raises: [], gcsafe, raises: [], tags: [RootEffect],
    forbids: [].}
Close and free resource allocated by body reader. Source   Edit  
proc closeWait(bstream: HttpBodyWriter): InternalRaisesFuture[void, void] {.
    ...stackTrace: false, raises: [], gcsafe, raises: [], tags: [RootEffect],
    forbids: [].}
Close and free all the resources allocated by body writer. Source   Edit  
proc hasOverflow(bstream: HttpBodyReader): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
Source   Edit  
proc newHttpBodyReader(streams: varargs[AsyncStreamReader]): HttpBodyReader {.
    ...raises: [], tags: [], forbids: [].}

HttpBodyReader is AsyncStreamReader which holds references to all the streams. Also on close it will close all the streams.

First stream in sequence will be used as a source.

Source   Edit  
proc newHttpBodyWriter(streams: varargs[AsyncStreamWriter]): HttpBodyWriter {.
    ...raises: [], tags: [], forbids: [].}

HttpBodyWriter is AsyncStreamWriter which holds references to all the streams. Also on close it will close all the streams.

First stream in sequence will be used as a destination.

Source   Edit