Yaws Parameter pass between out/1
klacke@REDACTED
klacke@REDACTED
Wed Jun 8 12:30:53 CEST 2005
On Wed, Jun 08, 2005 at 10:21:17AM +0600, Casper wrote:
> Hi All,
>
> In yaws, can I pass parameters between out/1 calls?
>
> What I tried below doesn't work. I tried to use #arg.state to pass data from
> first out/1 call to the second out/1. Please explain how to do it right.
> <erl>
> out(A) ->
> io:fwrite("State1: ~p~n", [A#arg.state]),
> {get_more, A#arg.cont, "Testing"}.
> </erl>
> <erl>
> out(A) ->
> io:fwrite("State2: ~p~n", [A#arg.state]),
> {html, "Funky Stuff"}.
> </erl>
>
There is no explicit support for this in Yaws.
It is however guaranteed that the two out/1 functions
will execute inside the same process.
Thus, to share state between two out/1 functions
in the same .yaws file it's possible to use the process dictionary
to pass data.
To pass data between different out/1 functions in different
.yaws file, some external thing must be used, such as a
gen_server, an ets table or a mnesia table.
Also, your code above looks odd. To return the {get_more ...
from the first out/1 function and then have another out/1 function
later will be bad.
The {get_more ... construct is only used to handle large POSTs
where all data from the client isn't yet available.
Take a look at upload.yaws in the www directory in the src distribution
or at http://yaws.hyber.org/upload0.yaws to understand this.
/klacke
--
Claes Wikstrom -- Caps lock is nowhere and
http://www.hyber.org -- everything is under control
More information about the erlang-questions
mailing list