From d74831dc9abca535881d4bd2890b1d87988cd06c Mon Sep 17 00:00:00 2001
From: Garrett D'Amore <garrett@damore.org>
Date: Fri, 3 Nov 2017 17:50:07 -0700
Subject: fixes #146 man pages for surveyor protocol needed

---
 docs/nng_respondent.adoc | 113 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100644 docs/nng_respondent.adoc

(limited to 'docs/nng_respondent.adoc')

diff --git a/docs/nng_respondent.adoc b/docs/nng_respondent.adoc
new file mode 100644
index 00000000..848887f5
--- /dev/null
+++ b/docs/nng_respondent.adoc
@@ -0,0 +1,113 @@
+nng_respondent(7)
+=================
+:doctype: manpage
+:manmanual: nng
+:mansource: nng
+:icons: font
+:source-highlighter: pygments
+:copyright: Copyright 2017 Garrett D'Amore <garrett@damore.org> \
+            Copyright 2017 Capitar IT Group BV <info@capitar.com> \
+            This software is supplied under the terms of the MIT License, a \
+            copy of which should be located in the distribution where this \
+            file was obtained (LICENSE.txt).  A copy of the license may also \
+            be found online at https://opensource.org/licenses/MIT.
+
+NAME
+----
+nng_respondent - respondent protocol
+
+SYNOPSIS
+--------
+
+[source,c]
+----------
+#include <nng/protocol/survey0/respondent.h>
+
+int nng_respondent0_open(nng_socket *s);
+----------
+
+DESCRIPTION
+-----------
+
+The _nng_respondent_ protocol is one half of a survey pattern.
+In this pattern, a surveyor sends a survey, which is broadcast to all
+peer respondents.  The respondents then have a chance to reply (but after
+not obliged to).  The survey itself is a timed event, so that responses
+received after the survey has finished are discarded.
+
+TIP: This protocol is useful in solving voting problems, such as leader
+election in cluster configurations, as well as certain kinds of service
+discovery problems.
+
+The _nng_respondent_ protocol is the respondent side, and the
+<<nng_surveyor.adoc#,nng_surveyor(7)>> protocol is the surveyor side.
+
+Socket Operations
+~~~~~~~~~~~~~~~~~
+
+The `nng_respondent0_open()` call creates a respondent socket.  This socket
+may be used to receive messages, and then to send replies.  Generally
+a reply can only be sent after receiving a survey, and generally the
+reply will be sent to surveyor from whom the last survey was received.
+
+Respondents may discard a survey by simply not replying to it. 
+
+Raw mode sockets (set with `NNG_OPT_RAW`) ignore all these restrictions.
+
+Protocol Versions
+~~~~~~~~~~~~~~~~~
+
+Only version 0 of this protocol is supported.  (At the time of writing,
+no other versions of this protocol have been defined.  An earlier and
+incompatible version of the protocol was used in older pre-releases of
+http://nanomsg.org[nanomsg], but was not released in any production
+version.)
+
+Protocol Options
+~~~~~~~~~~~~~~~~
+
+The following protocol-specific options are available.
+
+`NNG_OPT_MAXTTL`::
+
+   Maximum time-to-live.  This option is an integer value
+   between 0 and 255,
+   inclusive, and is the maximum number of "hops" that a message may
+   pass through until it is discarded.  The default value is 8.  A value
+   of 0 may be used to disable the loop protection, allowing an infinite
+   number of hops.
+
+Protocol Headers
+~~~~~~~~~~~~~~~~
+
+The _nng_respondent_ protocol uses a _backtrace_ in the header.  This
+form uses an array of 32-bit big-endian identifiers, where the first
+element in the array
+identifies the local peer identifier to which the message will next be sent.
+This is a hop-by-hop header where each element in a path adds routing
+information to the end when sending a survey, and when replying removes
+elements to obtain the next hop information.  The survey ID is at the
+end of this header and is inserted into the header as its first element
+by the originating surveyor.  (Survey IDs are distinguished from hops by
+having their high order bit set to one.)
+
+// TODO: Insert reference to RFC.
+
+    
+AUTHORS
+-------
+link:mailto:garrett@damore.org[Garrett D'Amore]
+
+SEE ALSO
+--------
+<<nng.adoc#,nng(7)>>
+<<nng_surveyor.adoc#,nng_surveyor(7)>>
+
+COPYRIGHT
+---------
+
+Copyright 2017 mailto:garrett@damore.org[Garrett D'Amore] +
+Copyright 2017 mailto:info@capitar.com[Capitar IT Group BV]
+
+This document is supplied under the terms of the
+https://opensource.org/licenses/LICENSE.txt[MIT License].
-- 
cgit v1.2.3-70-g09d2

