From 5dc7bc188217004cba84d530cbffc18b1df8a331 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore 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 \ + Copyright 2017 Capitar IT Group BV \ + 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 + +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 +-------- +<> + +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