From 5dc7bc188217004cba84d530cbffc18b1df8a331 Mon Sep 17 00:00:00 2001
From: Garrett D'Amore <garrett@damore.org>
Date: Tue, 24 Oct 2017 20:40:41 -0700
Subject: Various man page fixups, add inproc header.

We added nng_inproc man page, and a header with an explicit
registration method for it.  We also fixed up the markup on
several other pages, and corrected the include statements for
nng_zerotier.
---
 docs/nng_inproc.adoc | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)
 create mode 100644 docs/nng_inproc.adoc

(limited to 'docs/nng_inproc.adoc')

diff --git a/docs/nng_inproc.adoc b/docs/nng_inproc.adoc
new file mode 100644
index 00000000..7a49fa76
--- /dev/null
+++ b/docs/nng_inproc.adoc
@@ -0,0 +1,103 @@
+nng_inproc(7)
+=============
+:doctype: manpage
+:manmanual: nng
+:mansource: nng
+:manvolnum: 7
+: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_inproc - intra-process transport for nng
+
+SYNOPSIS
+--------
+
+[source,c]
+----------
+#include <nng/transport/inproc/inproc.h>
+
+int
+nng_inproc_register(void);
+----------
+
+DESCRIPTION
+-----------
+
+The _nng_inproc_ transport provides communication support between
+_nng_ sockets within the same process. This may be used as an alternative
+to slower transports when data must be moved within the same process.
+
+This transport tries hard to avoid copying data, and thus is very
+light-weight.
+
+Registration
+~~~~~~~~~~~~
+
+The _inproc_ transport is generally built-in to the _nng_ core, so
+no extra steps to use it should be necessary.
+
+URI Format
+~~~~~~~~~~
+
+This transport uses URIs using the scheme `inproc://`, followed by
+an arbitrary string of text, terminated by a `NUL` byte.  The
+entire URI must be less than `NNG_MAXADDRLEN` bytes long, including
+the terminating `NUL`.
+
+Multiple URIs can be used within the
+same application, and they will not interfere with one another.
+
+Two applications may also use the same URI without interfering with each
+other, and they will be unable to communicate with each other using
+that URI.
+
+Socket Address
+~~~~~~~~~~~~~~
+
+When using an `nng_sockaddr` structure, the actual structure is of type
+`struct nng_sockaddr_inproc`.  This type has the following definition:
+
+[source,c]
+--------
+#define NNG_AF_INPROC 1
+#define NNG_MAXADDRLEN 128
+
+struct nng_sockaddr_inproc {
+    uint16_t sa_family;                  // must be NNG_AF_INPROC
+    uint32_t sa_path[NNG_MAXADDRLEN];    // arbitrary "path"
+}
+--------
+
+The `sa_family` member will have the value `NNG_AF_INPROC` (1).
+The `sa_path` member is an ASCIIZ string, and may contain any charaters,
+terminated by a `NUL` byte.
+
+Transport Options
+~~~~~~~~~~~~~~~~~
+
+The _inproc_ transport has no special options.
+    
+AUTHORS
+-------
+link:mailto:garrett@damore.org[Garrett D'Amore]
+
+SEE ALSO
+--------
+<<nng.adoc#,nng(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

