[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 29/42: doc/service-communication: Document <server>.
From: |
gnunet |
Subject: |
[gnunet-scheme] 29/42: doc/service-communication: Document <server>. |
Date: |
Sat, 10 Sep 2022 19:08:22 +0200 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit e5ccd5ad1ff65dd43a89b3a1132c06397e643881
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Fri Sep 9 18:10:50 2022 +0200
doc/service-communication: Document <server>.
* doc/service-communication.tm (<server>): Document it, give an example.
---
doc/service-communication.tm | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/doc/service-communication.tm b/doc/service-communication.tm
index cf8d96f..5f6cdf9 100644
--- a/doc/service-communication.tm
+++ b/doc/service-communication.tm
@@ -493,7 +493,42 @@
<\explain>
<scm|\<less\>server\<gtr\>><index|\<less\>server\<gtr\>><label|\<less\>server\<gtr\>>
- </explain|<todo|???>>
+ <|explain>
+ The record type of server objects. The control channel and terminal
+ condition can be retrieved with <scm|server-terminal-condition> and
+ <scm|server-control-channel> respectively. In practice, you will need to
+ define a subtype of <scm|\<less\>server\<gtr\>> with
+ <scm|define-record-type> from R6RS. That way, new fields can be added and
+ a type predicate becomes available.
+
+ <\example>
+ The server type of <acronym|NSE> (network size estimation) is
+ implemented more-or-less like this:
+
+ <\scm>
+ (define-record-type (\<less\>server:nse\<gtr\> make-server
+ server:nse?)
+
+ \ \ (parent \<less\>server\<gtr\>)
+
+ \ \ (fields (immutable estimate/box server-estimate/box))
+
+ \ \ (protocol
+
+ \ \ \ \ (lambda (%make)
+
+ \ \ \ \ \ \ (lambda ()
+
+ \ \ \ \ \ \ \ \ ((%make) (make-atomic-box #false))))))
+
+ (define server (make-server))
+
+ (server:nse? server) ; -\<gtr\> #true
+
+ (atomic-box? (server-estimate/box)) ; -\<gtr\> #true
+ </scm>
+ </example>
+ </explain>
<\explain>
<scm|(maybe-send-control-message! <var|server> . <var|message>)>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] 09/42: server: Make #:message-queue a regular argument., (continued)
- [gnunet-scheme] 09/42: server: Make #:message-queue a regular argument., gnunet, 2022/09/10
- [gnunet-scheme] 01/42: dht/server: Pass 'spawn' to connect/fibers., gnunet, 2022/09/10
- [gnunet-scheme] 10/42: server: Only accept a single 'state' argument., gnunet, 2022/09/10
- [gnunet-scheme] 08/42: nse/client: Simplify state passing with a new subtype of <loop>., gnunet, 2022/09/10
- [gnunet-scheme] 03/42: dht/client: Extract message handlers., gnunet, 2022/09/10
- [gnunet-scheme] 04/42: dht/client: Eliminate mutation from the control loop., gnunet, 2022/09/10
- [gnunet-scheme] 07/42: server: Rename 'primitive-reconnect' to 'run-loop'., gnunet, 2022/09/10
- [gnunet-scheme] 14/42: server: Deduplicate make-error-handler*., gnunet, 2022/09/10
- [gnunet-scheme] 19/42: cadet/client: Minimise imports., gnunet, 2022/09/10
- [gnunet-scheme] 21/42: server: Unify loop spawning., gnunet, 2022/09/10
- [gnunet-scheme] 29/42: doc/service-communication: Document <server>.,
gnunet <=
- [gnunet-scheme] 20/42: server: Add default arguments to 'make-loop'., gnunet, 2022/09/10
- [gnunet-scheme] 25/42: server: Re-indent., gnunet, 2022/09/10
- [gnunet-scheme] 31/42: doc/service-communication: Document spawn-server-loop., gnunet, 2022/09/10
- [gnunet-scheme] 11/42: dht: Use <loop> for state where possible., gnunet, 2022/09/10
- [gnunet-scheme] 13/42: dht/client: Rewrite in terms of (gnu gnunet server)., gnunet, 2022/09/10
- [gnunet-scheme] 12/42: Revert "server: Only accept a single 'state' argument.", gnunet, 2022/09/10
- [gnunet-scheme] 16/42: cadet/client: Avoid (mutating) hash tables., gnunet, 2022/09/10
- [gnunet-scheme] 05/42: dht/client: Bring API of reconnect mostly in line with (gnu gnunet server)., gnunet, 2022/09/10
- [gnunet-scheme] 28/42: server: Inline primitive-disconnect!., gnunet, 2022/09/10
- [gnunet-scheme] 15/42: server: New procedure for making the arguments to make-loop., gnunet, 2022/09/10