From 2e8fcb9a9ef9ef9beff25ed4d48cf0d90609a69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 7 Oct 2019 13:25:49 +0200 Subject: Add cowboy_req:cast/2 Better than sending messages manually. --- doc/src/manual/cowboy_req.asciidoc | 4 +++ doc/src/manual/cowboy_req.cast.asciidoc | 64 +++++++++++++++++++++++++++++++++ doc/src/manual/cowboy_stream.asciidoc | 8 ++--- 3 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 doc/src/manual/cowboy_req.cast.asciidoc (limited to 'doc') diff --git a/doc/src/manual/cowboy_req.asciidoc b/doc/src/manual/cowboy_req.asciidoc index f6f4127..0a1ca1b 100644 --- a/doc/src/manual/cowboy_req.asciidoc +++ b/doc/src/manual/cowboy_req.asciidoc @@ -90,6 +90,10 @@ Response: * link:man:cowboy_req:stream_trailers(3)[cowboy_req:stream_trailers(3)] - Send the response trailers * link:man:cowboy_req:push(3)[cowboy_req:push(3)] - Push a resource to the client +Stream handlers: + +* link:man:cowboy_req:cast(3)[cowboy_req:cast(3)] - Cast a stream handler event + == Types === push_opts() diff --git a/doc/src/manual/cowboy_req.cast.asciidoc b/doc/src/manual/cowboy_req.cast.asciidoc new file mode 100644 index 0000000..d6e018f --- /dev/null +++ b/doc/src/manual/cowboy_req.cast.asciidoc @@ -0,0 +1,64 @@ += cowboy_req:cast(3) + +== Name + +cowboy_req:cast - Cast a stream handler event + +== Description + +[source,erlang] +---- +cast(Event :: any(), Req :: cowboy_req:req()) -> ok +---- + +Cast a stream handler event. + +The event will be passed to stream handlers through the +`info/3` callback. + +== Arguments + +Event:: + +The event to be sent to stream handlers. + +Req:: + +The Req object. + +== Return value + +The atom `ok` is always returned. It can be safely ignored. + +== Changelog + +* *2.7*: Function introduced. + +== Examples + +.Increase the HTTP/1.1 idle timeout +[source,erlang] +---- +cowboy_req:cast({set_options, #{ + idle_timeout => 3600000 +}}, Req). +---- + +.Add user data to metrics +---- +cowboy_req:cast({set_options, #{ + metrics_user_data => #{handler => ?MODULE} +}}, Req). +---- + +.Enable compression buffering +---- +cowboy_req:cast({set_options, #{ + compress_buffering => true +}}, Req). +---- + +== See also + +link:man:cowboy_req(3)[cowboy_req(3)], +link:man:cowboy_stream(3)[cowboy_stream(3)] diff --git a/doc/src/manual/cowboy_stream.asciidoc b/doc/src/manual/cowboy_stream.asciidoc index b1cab3f..868deac 100644 --- a/doc/src/manual/cowboy_stream.asciidoc +++ b/doc/src/manual/cowboy_stream.asciidoc @@ -277,9 +277,8 @@ relevant option's documentation for details. Cowboy will forward all messages sent to the stream to the `info/3` callback. To send a message to a stream, -send a message to the connection process with the form -`{{Pid, StreamID}, Msg}`. The connection process will -then forward `Msg` to the stream handlers. +the function link:man:cowboy_req:cast(3)[cowboy_req:cast(3)] +can be used. Cowboy will also forward the exit signals for the processes that the stream spawned. @@ -403,4 +402,5 @@ tuple. link:man:cowboy(7)[cowboy(7)], link:man:cowboy_http(3)[cowboy_http(3)], -link:man:cowboy_http2(3)[cowboy_http2(3)] +link:man:cowboy_http2(3)[cowboy_http2(3)], +link:man:cowboy_req:cast(3)[cowboy_req:cast(3)] -- cgit v1.2.3