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

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: [].}

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