From 5fe1be70078d7970c9e3bb687294d438918d7925 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= <essen@ninenines.eu>
Date: Wed, 17 Jan 2024 12:52:45 +0100
Subject: Add missing manual pages for cowboy_stream functions

---
 doc/src/manual/cowboy_stream.data.asciidoc | 81 ++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 doc/src/manual/cowboy_stream.data.asciidoc

(limited to 'doc/src/manual/cowboy_stream.data.asciidoc')

diff --git a/doc/src/manual/cowboy_stream.data.asciidoc b/doc/src/manual/cowboy_stream.data.asciidoc
new file mode 100644
index 0000000..a0328f6
--- /dev/null
+++ b/doc/src/manual/cowboy_stream.data.asciidoc
@@ -0,0 +1,81 @@
+= cowboy_stream:data(3)
+
+== Name
+
+cowboy_stream:data - Handle data for a stream
+
+== Description
+
+[source,erlang]
+----
+data(StreamID, IsFin, Data, State) -> {Commands, State}
+
+StreamID :: cowboy_stream:stream_id()
+IsFin    :: cowboy_stream:fin()
+Data     :: binary()
+Commands :: cowboy_stream:commands()
+State    - opaque
+----
+
+Handle data for a stream.
+
+This function should be called by all stream handlers. It will
+propagate data to the next configured stream handler. Handlers
+do not have to propagate data that has been fully handled.
+
+== Arguments
+
+StreamID::
+
+The stream ID.
+
+IsFin::
+
+Whether this is the end of the request body.
+
+Data::
+
+The data received.
+
+Commands::
+
+The commands to be executed.
+
+State::
+
+The state for the next stream handler.
+
+== Return value
+
+A list of commands and an opaque state is returned.
+
+The list of commands returned should be included in the
+commands returned from the current stream handler. It
+can be modified if necessary.
+
+The state should be stored in the current stream
+handler's state and passed to `cowboy_stream` when
+necessary. The state should be treated as opaque.
+
+== Changelog
+
+* *2.0*: Function introduced.
+
+== Examples
+
+.Propagate data to the next stream handler
+[source,erlang]
+----
+data(StreamID, IsFin, Data, State=#state{next=Next0}) ->
+    MyCommands = my_commands(),
+    {Commands, Next} = cowboy_stream:data(StreamID, IsFin, Data, Next0),
+    {MyCommands ++ Commands, #state{next=Next}}.
+----
+
+== See also
+
+link:man:cowboy_stream(3)[cowboy_stream(3)],
+link:man:cowboy_stream:init(3)[cowboy_stream:init(3)],
+link:man:cowboy_stream:info(3)[cowboy_stream:info(3)],
+link:man:cowboy_stream:terminate(3)[cowboy_stream:terminate(3)],
+link:man:cowboy_stream:early_error(3)[cowboy_stream:early_error(3)]
-- 
cgit v1.2.3

