summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJake Woltersdorf <jake@playruyi.com>2019-03-04 12:35:19 +0800
committerGarrett D'Amore <garrett@damore.org>2019-04-07 19:13:44 -0700
commitc3e062661388f70386d6766e3ce648030af340ee (patch)
treea6d247bd24a17e3201a75b1a164e75d16e37196c /docs
parent989c5e90d48066b12ad44ed903cfc163d8e89b29 (diff)
downloadnng-c3e062661388f70386d6766e3ce648030af340ee.tar.gz
nng-c3e062661388f70386d6766e3ce648030af340ee.tar.bz2
nng-c3e062661388f70386d6766e3ce648030af340ee.zip
fixes #901 shorter option get/set functions for all types
- Renamed internal nng_*_getx/setx methods with "nni" prefix - Moved stream get/set option definition macros to options.h and added "NNI_" prefix - "_PTR" variant of get/set option definition macros is for when first arg is passed as pointer (`nng_stream *s` vs `nng_pipe s`) - New get/set option functions for `nng_socket` are `nng_socket_get_X` eschewing the previous `nng_getopt` pattern - Macro-fy legacy getopt/setopt and implement in terms of "new" API - nng_setopt* use "new" shorter API. Add missing uint64 set functions. - Shorter get/set option functions get own man page and old getopt/setopt link to them - Built with -DNNG_ENABLE_DOC=ON and part of central libnng index - Update copyright
Diffstat (limited to 'docs')
-rw-r--r--docs/man/CMakeLists.txt9
-rw-r--r--docs/man/libnng.3.adoc9
-rw-r--r--docs/man/nng_ctx_get.3.adoc131
-rw-r--r--docs/man/nng_ctx_getopt.3.adoc5
-rw-r--r--docs/man/nng_ctx_set.3.adoc113
-rw-r--r--docs/man/nng_ctx_setopt.3.adoc5
-rw-r--r--docs/man/nng_dialer_get.3.adoc147
-rw-r--r--docs/man/nng_dialer_getopt.3.adoc5
-rw-r--r--docs/man/nng_dialer_set.3.adoc131
-rw-r--r--docs/man/nng_dialer_setopt.3.adoc5
-rw-r--r--docs/man/nng_getopt.3.adoc5
-rw-r--r--docs/man/nng_listener_get.3.adoc147
-rw-r--r--docs/man/nng_listener_getopt.3.adoc5
-rw-r--r--docs/man/nng_listener_set.3.adoc133
-rw-r--r--docs/man/nng_listener_setopt.3.adoc7
-rw-r--r--docs/man/nng_pipe_get.3.adoc153
-rw-r--r--docs/man/nng_pipe_getopt.3.adoc5
-rw-r--r--docs/man/nng_setopt.3.adoc6
-rw-r--r--docs/man/nng_socket_get.3.adoc144
-rw-r--r--docs/man/nng_socket_set.3.adoc124
20 files changed, 1279 insertions, 10 deletions
diff --git a/docs/man/CMakeLists.txt b/docs/man/CMakeLists.txt
index 747e1bad..061528b5 100644
--- a/docs/man/CMakeLists.txt
+++ b/docs/man/CMakeLists.txt
@@ -84,18 +84,22 @@ if (NNG_ENABLE_DOC)
nng_bus_open
nng_close
nng_ctx_close
+ nng_ctx_get
nng_ctx_getopt
nng_ctx_id
nng_ctx_open
nng_ctx_recv
nng_ctx_send
+ nng_ctx_set
nng_ctx_setopt
nng_device
nng_dial
nng_dialer_close
nng_dialer_create
+ nng_dialer_get
nng_dialer_getopt
nng_dialer_id
+ nng_dialer_set
nng_dialer_setopt
nng_dialer_start
nng_free
@@ -105,8 +109,10 @@ if (NNG_ENABLE_DOC)
nng_listen
nng_listener_close
nng_listener_create
+ nng_listener_get
nng_listener_getopt
nng_listener_id
+ nng_listener_set
nng_listener_setopt
nng_listener_start
nng_msg_alloc
@@ -132,6 +138,7 @@ if (NNG_ENABLE_DOC)
nng_pair_open
nng_pipe_close
nng_pipe_dialer
+ nng_pipe_get
nng_pipe_getopt
nng_pipe_id
nng_pipe_listener
@@ -152,6 +159,8 @@ if (NNG_ENABLE_DOC)
nng_setopt
nng_sleep_aio
nng_socket_id
+ nng_socket_get
+ nng_socket_set
nng_stats_free
nng_stats_get
nng_stat_child
diff --git a/docs/man/libnng.3.adoc b/docs/man/libnng.3.adoc
index 3aebcf76..bf2a602d 100644
--- a/docs/man/libnng.3.adoc
+++ b/docs/man/libnng.3.adoc
@@ -50,7 +50,9 @@ The following functions operate on sockets.
|xref:nng_recv.3.adoc[nng_recv()]|receive data
|xref:nng_send.3.adoc[nng_send()]|send data
|xref:nng_setopt.3.adoc[nng_setopt()]|set socket option
+|xref:nng_socket_get.3.adoc[nng_socket_get()]|get socket option
|xref:nng_socket_id.3.adoc[nng_socket_id()]|get numeric socket identifier
+|xref:nng_socket_set.3.adoc[nng_socket_set()]|set socket option
|===
=== Connection Management
@@ -62,19 +64,24 @@ Listeners accept incoming connection requests, and dialers make them.
|xref:nng_dial.3.adoc[nng_dial()]|create and start dialer
|xref:nng_dialer_close.3.adoc[nng_dialer_close()]|close dialer
|xref:nng_dialer_create.3.adoc[nng_dialer_create()]|create dialer
+|xref:nng_dialer_get.3.adoc[nng_dialer_get()]|get dialer option
|xref:nng_dialer_getopt.3.adoc[nng_dialer_getopt()]|get dialer option
|xref:nng_dialer_id.3.adoc[nng_dialer_id()]|get numeric dialer identifier
+|xref:nng_dialer_set.3.adoc[nng_dialer_set()]|set dialer option
|xref:nng_dialer_setopt.3.adoc[nng_dialer_setopt()]|set dialer option
|xref:nng_dialer_start.3.adoc[nng_dialer_start()]|start dialer
|xref:nng_listen.3.adoc[nng_listen()]|create and start listener
|xref:nng_listener_close.3.adoc[nng_listener_close()]|close listener
|xref:nng_listener_create.3.adoc[nng_listener_create()]|create listener
+|xref:nng_listener_get.3.adoc[nng_listener_get()]|get listener option
|xref:nng_listener_getopt.3.adoc[nng_listener_getopt()]|get listener option
|xref:nng_listener_id.3.adoc[nng_listener_id()]|get numeric listener identifier
+|xref:nng_listener_set.3.adoc[nng_listener_set()]|set listener option
|xref:nng_listener_setopt.3.adoc[nng_listener_setopt()]|set listener option
|xref:nng_listener_start.3.adoc[nng_listener_start()]|start listener
|xref:nng_pipe_close.3.adoc[nng_pipe_close()]|close pipe
|xref:nng_pipe_dialer.3.adoc[nng_pipe_dialer()]|return dialer that created pipe
+|xref:nng_pipe_get.3.adoc[nng_pipe_get()]|get pipe option
|xref:nng_pipe_getopt.3.adoc[nng_pipe_getopt()]|get pipe option
|xref:nng_pipe_id.3.adoc[nng_pipe_id()]|get numeric pipe identifier
|xref:nng_pipe_listener.3.adoc[nng_pipe_listener()]|return listener that created pipe
@@ -215,11 +222,13 @@ concurrent applications.
|===
|xref:nng_ctx_close.3.adoc[nng_ctx_close()]|close context
+|xref:nng_ctx_get.3.adoc[nng_ctx_get()]|get context option
|xref:nng_ctx_getopt.3.adoc[nng_ctx_getopt()]|get context option
|xref:nng_ctx_id.3.adoc[nng_ctx_id()]|get numeric context identifier
|xref:nng_ctx_open.3.adoc[nng_ctx_open()]|create context
|xref:nng_ctx_recv.3.adoc[nng_ctx_recv()]|receive message using context asynchronously
|xref:nng_ctx_send.3.adoc[nng_ctx_send()]|send message using context asynchronously
+|xref:nng_ctx_set.3.adoc[nng_ctx_set()]|set context option
|xref:nng_ctx_setopt.3.adoc[nng_ctx_setopt()]|set context option
|===
diff --git a/docs/man/nng_ctx_get.3.adoc b/docs/man/nng_ctx_get.3.adoc
new file mode 100644
index 00000000..e6e9cc1f
--- /dev/null
+++ b/docs/man/nng_ctx_get.3.adoc
@@ -0,0 +1,131 @@
+= nng_ctx_get(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_ctx_get - get context option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_ctx_get(nng_ctx ctx, const char *opt, void *val, size_t *valszp);
+
+int nng_ctx_get_bool(nng_ctx ctx, const char *opt, bool *bvalp);
+
+int nng_ctx_get_int(nng_ctx ctx, const char *opt, int *ivalp);
+
+int nng_ctx_get_ms(nng_ctx ctx, const char *opt, nng_duration *durp);
+
+int nng_ctx_get_size(nng_ctx ctx, const char *opt, size_t *zp);
+
+int nng_ctx_get_string(nng_ctx ctx, const char *opt, char **strp);
+
+int nng_ctx_get_uint64(nng_ctx ctx, const char *opt, uint64_t *u64p);
+
+----
+
+== DESCRIPTION
+
+(((options, context)))
+The `nng_ctx_get()` functions are used to retrieve option values for
+the <<nng_ctx.5#,context>> _ctx_.
+The actual options that may be retrieved in this way vary.
+A number of them are documented in <<nng_options.5#,nng_options(5)>>.
+
+NOTE: Context options are protocol specific.
+The details will be documented with the protocol.
+
+=== Forms
+
+In all of these forms, the option _opt_ is retrieved from the context _ctx_.
+The forms vary based on the type of the option they take.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_ctx_get()`::
+This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in _val_,
+and the size of the buffer shall be stored at the location referenced by
+_valszp_. +
+ +
+When the function returns, the actual size of the data copied (or that
+would have been copied if sufficient space were present) is stored at
+the location referenced by _valszp_.
+If the caller's buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in _valszp_ does not exceed the original buffer size. +
+ +
+It is acceptable to pass `NULL` for _val_ if the value in _valszp_ is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_ctx_get_bool()`::
+This function is for options which take a Boolean (`bool`).
+The value will be stored at _ivalp_.
+
+`nng_ctx_get_int()`::
+This function is for options which take an integer (`int`).
+The value will be stored at _ivalp_.
+
+`nng_ctx_get_ms()`::
+This function is used to retrieve time <<nng_duration.5#,durations>>
+(such as timeouts), stored in _durp_ as a number of milliseconds.
+(The special value ((`NNG_DUR_INFINITE`)) means an infinite amount of time, and
+the special value ((`NNG_DUR_DEFAULT`)) means a context-specific default.)
+
+`nng_ctx_get_size()`::
+This function is used to retrieve a size into the pointer _zp_,
+typically for buffer sizes, message maximum sizes, and similar options.
+
+`nng_ctx_get_string()`::
+This function is used to retrieve a string into _strp_.
+This string is created from the source using `<<nng_strdup.3#,nng_strdup()>>`
+and consequently must be freed by the caller using
+`<<nng_strfree.3#,nng_strfree()>>` when it is no longer needed.
+
+`nng_ctx_get_uint64()`::
+This function is used to retrieve a 64-bit unsigned value into the value
+referenced by _u64p_.
+This is typically used for options related to identifiers, network
+numbers, and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _s_ does not refer to an open socket.
+`NNG_EINVAL`:: Size of destination _val_ too small for object.
+`NNG_ENOMEM`:: Insufficient memory exists.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EWRITEONLY`:: The option _opt_ is write-only.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_ctx_set.3#,nng_ctx_set(3)>>,
+<<nng_strdup.3#,nng_strdup(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_strfree.3#,nng_strfree(3)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_ctx.5#,nng_ctx(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_ctx_getopt.3.adoc b/docs/man/nng_ctx_getopt.3.adoc
index 8c708dc6..2ae8b992 100644
--- a/docs/man/nng_ctx_getopt.3.adoc
+++ b/docs/man/nng_ctx_getopt.3.adoc
@@ -1,6 +1,6 @@
= nng_ctx_getopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -32,10 +32,13 @@ int nng_ctx_getopt_size(nng_ctx ctx, const char *opt, size_t *zp);
int nng_ctx_getopt_string(nng_ctx ctx, const char *opt, char **strp);
int nng_ctx_getopt_uint64(nng_ctx ctx, const char *opt, uint64_t *u64p);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_ctx_get.3.adoc[nng_ctx_get].
+
(((options, context)))
The `nng_ctx_getopt()` functions are used to retrieve option values for
the <<nng_ctx.5#,context>> _ctx_.
diff --git a/docs/man/nng_ctx_set.3.adoc b/docs/man/nng_ctx_set.3.adoc
new file mode 100644
index 00000000..8c9c5095
--- /dev/null
+++ b/docs/man/nng_ctx_set.3.adoc
@@ -0,0 +1,113 @@
+= nng_ctx_set(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_ctx_set - set context option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_ctx_set(nng_ctx ctx, const char *opt, const void *val, size_t valsz);
+
+int nng_ctx_set_bool(nng_ctx ctx, const char *opt, int bval);
+
+int nng_ctx_set_int(nng_ctx ctx, const char *opt, int ival);
+
+int nng_ctx_set_ms(nng_ctx ctx, const char *opt, nng_duration dur);
+
+int nng_ctx_set_size(nng_ctx ctx, const char *opt, size_t z);
+
+int nng_ctx_set_string(nng_ctx ctx, const char *opt, const char *str);
+
+int nng_ctx_set_uint64(nng_ctx ctx, const char *opt, uint64_t u64);
+----
+
+== DESCRIPTION
+
+NOTE: These functions are deprecated. Please see xref:nng_ctx_set.3.adoc[nng_ctx_set].
+
+(((options, context)))
+The `nng_ctx_set()` functions are used to configure options for
+the context _ctx_.
+The actual options that may be configured in this way vary, and are
+specified by _opt_.
+
+NOTE: Context options are protocol specific.
+The details will be documented with the protocol.
+
+=== Forms
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_ctx_set()`::
+This function is untyped, and can be used to configure any arbitrary data.
+The _val_ pointer addresses the data to copy, and _valsz_ is the
+size of the objected located at _val_.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_ctx_set_bool()`::
+This function is for options which take a Boolean (`bool`).
+The _bval_ is passed to the option.
+
+`nng_ctx_set_int()`::
+This function is for options which take an integer (`int`).
+The _ival_ is passed to the option.
+
+`nng_ctx_set_ms()`::
+This function is used to configure time durations (such as timeouts) using
+type `<<nng_duration.5#,nng_duration>>`.
+The duration _dur_ is an integer number of milliseconds.
+
+`nng_ctx_set_size()`::
+This function is used to configure a size, _z_, typically for buffer sizes,
+message maximum sizes, and similar options.
+
+`nng_ctx_set_string()`::
+This function is used to pass configure a string, _str_.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a `NUL` (`\0`) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)
+
+`nng_ctx_set_uint64()`::
+This function is used to configure a 64-bit unsigned value, _u64_.
+This is typically used for options related to identifiers, network numbers,
+and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_ECLOSED`:: Parameter _s_ does not refer to an open socket.
+`NNG_EINVAL`:: The value being passed is invalid.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EREADONLY`:: The option _opt_ is read-only.
+`NNG_ESTATE`:: The socket is in an inappropriate state for setting this option.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_ctx_get.3#,nng_ctx_get(3)>>,
+<<nng_socket_set.3#,nng_socket_set(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_ctx.5#,nng_ctx(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng_socket.5#,nng_socket(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_ctx_setopt.3.adoc b/docs/man/nng_ctx_setopt.3.adoc
index 45f178f8..478410b5 100644
--- a/docs/man/nng_ctx_setopt.3.adoc
+++ b/docs/man/nng_ctx_setopt.3.adoc
@@ -1,6 +1,6 @@
= nng_ctx_setopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -35,6 +35,9 @@ int nng_ctx_setopt_uint64(nng_ctx ctx, const char *opt, uint64_t u64);
----
== DESCRIPTION
+
+NOTE: These functions are deprecated. Please see xref:nng_ctx_set.3.adoc[nng_ctx_set].
+
(((options, context)))
The `nng_ctx_setopt()` functions are used to configure options for
the context _ctx_.
diff --git a/docs/man/nng_dialer_get.3.adoc b/docs/man/nng_dialer_get.3.adoc
new file mode 100644
index 00000000..86fec260
--- /dev/null
+++ b/docs/man/nng_dialer_get.3.adoc
@@ -0,0 +1,147 @@
+= nng_dialer_get(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_dialer_get - get dialer option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_dialer_get(nng_dialer d, const char *opt, void *val, size_t *valszp);
+
+int nng_dialer_get_bool(nng_dialer d, const char *opt, bool *bvalp);
+
+int nng_dialer_get_int(nng_dialer d, const char *opt, int *ivalp);
+
+int nng_dialer_get_ms(nng_dialer d, const char *opt, nng_duration *durp);
+
+int nng_dialer_get_ptr(nng_dialer d, const char *opt, void **ptr);
+
+int nng_dialer_get_size(nng_dialer d, const char *opt, size_t *zp);
+
+int nng_dialer_get_addr(nng_dialer d, const char *opt, nng_sockaddr *sap);
+
+int nng_dialer_get_string(nng_dialer d, const char *opt, char **strp);
+
+int nng_dialer_get_uint64(nng_dialer d, const char *opt, uint64_t *u64p);
+
+----
+
+== DESCRIPTION
+
+(((options, dialer)))
+The `nng_dialer_get()` functions are used to retrieve option values for
+the <<nng_dialer.5#,dialer>> _d_.
+The actual options that may be retrieved in this way
+vary, and many are documented in <<nng_options.5#,nng_options(5)>>.
+
+Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.
+
+=== Forms
+
+In all of these forms, the option _opt_ is retrieved from the dialer _d_.
+The forms vary based on the type of the option they take.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_dialer_get()`::
+This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in _val_,
+and the size of the buffer shall be stored at the location referenced
+by _valszp_. +
+ +
+When the function returns, the actual size of the data copied (or that
+would have been copied if sufficient space were present) is stored at
+the location referenced by _valszp_.
+If the caller's buffer is not large
+enough to hold the entire object, then the copy is truncated.
+Therefore the caller should validate that the returned size in _valszp_ does not
+exceed the original buffer size to check for truncation. +
+ +
+It is acceptable to pass `NULL` for _val_ if the value in _valszp_ is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_dialer_get_bool()`::
+This function is for options which take a Boolean (`bool`).
+The value will be stored at _bvalp_.
+
+`nng_dialer_get_int()`::
+This function is for options which take an integer (`int`).
+The value will be stored at _ivalp_.
+
+`nng_dialer_get_ms()`::
+This function is used to retrieve time <<nng_duration.5#,durations>>
+(such as timeouts), stored in _durp_ as a number of milliseconds.
+(The special value ((`NNG_DUR_INFINITE`)) means an infinite amount of time, and
+the special value ((`NNG_DUR_DEFAULT`)) means a context-specific default.)
+
+`nng_dialer_get_ptr()`::
+This function is used to retrieve a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_dialer_get_size()`::
+This function is used to retrieve a size into the pointer _zp_,
+typically for buffer sizes, message maximum sizes, and similar options.
+
+`nng_dialer_get_addr()`::
+This function is used to retrieve an `<<nng_sockaddr.5#,nng_sockaddr>>`
+into the value referenced by _sap_.
+
+`nng_dialer_get_string()`::
+This function is used to retrieve a string into _strp_.
+This string is created from the source using `<<nng_strdup.3#,nng_strdup()>>`
+and consequently must be freed by the caller using
+`<<nng_strfree.3#,nng_strfree()>>` when it is no longer needed.
+
+`nng_dialer_get_uint64()`::
+This function is used to retrieve a 64-bit unsigned value into the value
+referenced by _u64p_.
+This is typically used for options related to identifiers, network
+numbers, and similar.
+
+== RETURN VALUES
+
+These functions returns 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _d_ does not refer to an open dialer.
+`NNG_EINVAL`:: Size of destination _val_ too small for object.
+`NNG_ENOMEM`:: Insufficient memory exists.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EWRITEONLY`:: The option _opt_ is write-only.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_dialer_create.3#,nng_dialer_create(3)>>
+<<nng_dialer_set.3#,nng_dialer_set(3)>>
+<<nng_strdup.3#,nng_strdup(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_strfree.3#,nng_strfree(3)>>,
+<<nng_dialer.5#,nng_dialer(5)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng_sockaddr.5#,nng_sockaddr(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_dialer_getopt.3.adoc b/docs/man/nng_dialer_getopt.3.adoc
index 6b2f3c1e..ea7529dc 100644
--- a/docs/man/nng_dialer_getopt.3.adoc
+++ b/docs/man/nng_dialer_getopt.3.adoc
@@ -1,6 +1,6 @@
= nng_dialer_getopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -36,10 +36,13 @@ int nng_dialer_getopt_sockaddr(nng_dialer d, const char *opt, nng_sockaddr *sap)
int nng_dialer_getopt_string(nng_dialer d, const char *opt, char **strp);
int nng_dialer_getopt_uint64(nng_dialer d, const char *opt, uint64_t *u64p);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_dialer_get.3.adoc[nng_dialer_get].
+
(((options, dialer)))
The `nng_dialer_getopt()` functions are used to retrieve option values for
the <<nng_dialer.5#,dialer>> _d_.
diff --git a/docs/man/nng_dialer_set.3.adoc b/docs/man/nng_dialer_set.3.adoc
new file mode 100644
index 00000000..5f81e9a0
--- /dev/null
+++ b/docs/man/nng_dialer_set.3.adoc
@@ -0,0 +1,131 @@
+= nng_dialer_set(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_dialer_set - set dialer option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_dialer_set(nng_dialer d, const char *opt, const void *val,
+ size_t valsz);
+
+int nng_dialer_set_bool(nng_dialer d, const char *opt, bool bval);
+
+int nng_dialer_set_int(nng_dialer d, const char *opt, int ival);
+
+int nng_dialer_set_ms(nng_dialer d, const char *opt, nng_duration dur);
+
+int nng_dialer_set_ptr(nng_dialer d, const char *opt, void *ptr);
+
+int nng_dialer_set_size(nng_dialer d, const char *opt, size_t z);
+
+int nng_dialer_set_string(nng_dialer d, const char *opt, const char *str);
+
+int nng_dialer_set_uint64(nng_dialer d, const char *opt, uint64_t u64);
+
+----
+
+== DESCRIPTION
+
+(((options, dialer)))
+The `nng_dialer_set()` functions are used to configure options for
+the <<nng_dialer.5#,dialer>> _d_.
+The actual options that may be configured in this way
+vary, and many are documented in <<nng_options.5#,nng_options(5)>>.
+
+Additionally some transport-specific options are documented with the
+transports themselves.
+
+NOTE: Once a dialer has started, it is generally not possible to change
+its configuration.
+
+=== Forms
+
+In all of these forms, the option _opt_ is configured on the dialer _d_.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_dialer_set()`::
+This function is untyped, and can be used to configure any arbitrary data.
+The _val_ pointer addresses the data to copy, and _valsz_ is the
+size of the objected located at _val_.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_dialer_set_bool()`::
+This function is for options which take a Boolean (`bool`).
+The _bval_ is passed to the option.
+
+`nng_dialer_set_int()`::
+This function is for options which take an integer (`int`).
+The _ival_ is passed to the option.
+
+`nng_dialer_set_ms()`::
+This function is used to configure time durations (such as timeouts) using
+type `<<nng_duration.5#,nng_duration>>`.
+The duration _dur_ is an integer number of milliseconds.
+
+`nng_dialer_set_ptr()`::
+This function is used to pass a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed by other functions.
+For example, TLS configuration objects created with
+(`<<nng_tls_config_alloc.3tls#,nng_tls_config_alloc()>>`)
+can be passed this way.
+
+NOTE: This form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_dialer_set_size()`::
+This function is used to configure a size, _z_, typically for buffer sizes,
+message maximum sizes, and similar options.
+
+`nng_dialer_set_string()`::
+This function is used to pass configure a string, _str_.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a `NUL` (`\0`) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)
+
+`nng_dialer_set_uint64()`::
+This function is used to configure a 64-bit unsigned value, _u64_.
+This is typically used for options related to identifiers, network numbers,
+and such.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _d_ does not refer to an open dialer.
+`NNG_EINVAL`:: The value being passed is invalid.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EREADONLY`:: The option _opt_ is read-only.
+`NNG_ESTATE`:: The dialer _d_ is already started.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_dialer_create.3#,nng_dialer_create(3)>>
+<<nng_dialer_get.3#,nng_dialer_get(3)>>
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_dialer.5#,nng_dialer(5)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_dialer_setopt.3.adoc b/docs/man/nng_dialer_setopt.3.adoc
index 01fcb3d4..1e96d4de 100644
--- a/docs/man/nng_dialer_setopt.3.adoc
+++ b/docs/man/nng_dialer_setopt.3.adoc
@@ -1,6 +1,6 @@
= nng_dialer_setopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -35,10 +35,13 @@ int nng_dialer_setopt_size(nng_dialer d, const char *opt, size_t z);
int nng_dialer_setopt_string(nng_dialer d, const char *opt, const char *str);
int nng_dialer_setopt_uint64(nng_dialer d, const char *opt, uint64_t u64);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_dialer_set.3.adoc[nng_dialer_set].
+
(((options, dialer)))
The `nng_dialer_setopt()` functions are used to configure options for
the <<nng_dialer.5#,dialer>> _d_.
diff --git a/docs/man/nng_getopt.3.adoc b/docs/man/nng_getopt.3.adoc
index 491d6038..3b52b348 100644
--- a/docs/man/nng_getopt.3.adoc
+++ b/docs/man/nng_getopt.3.adoc
@@ -1,6 +1,6 @@
= nng_getopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -34,10 +34,13 @@ int nng_getopt_size(nng_socket s, const char *opt, size_t *zp);
int nng_getopt_string(nng_socket s, const char *opt, char **strp);
int nng_getopt_uint64(nng_socket s, const char *opt, uint64_t *u64p);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_socket_get.3.adoc[nng_socket_get].
+
(((options, socket)))
The `nng_getopt()` functions are used to retrieve option values for
the <<nng_socket.5#,socket>> _s_.
diff --git a/docs/man/nng_listener_get.3.adoc b/docs/man/nng_listener_get.3.adoc
new file mode 100644
index 00000000..4c74fa5d
--- /dev/null
+++ b/docs/man/nng_listener_get.3.adoc
@@ -0,0 +1,147 @@
+= nng_listener_get(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_listener_get - get listener option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_listener_get(nng_listener l, const char *opt, void *val, size_t *valszp);
+
+int nng_listener_get_bool(nng_listener l, const char *opt, bool *bvalp);
+
+int nng_listener_get_int(nng_listener l, const char *opt, int *ivalp);
+
+int nng_listener_get_ms(nng_listener l, const char *opt, nng_duration *durp);
+
+int nng_listener_get_ptr(nng_listener l, const char *opt, void **ptr);
+
+int nng_listener_get_size(nng_listener l, const char *opt, size_t *zp);
+
+int nng_listener_get_addr(nng_listener l, const char *opt, nng_sockaddr *sap);
+
+int nng_listener_get_string(nng_listener l, const char *opt, char **strp);
+
+int nng_listener_get_uint64(nng_listener l, const char *opt, uint64_t *u64p);
+
+----
+
+== DESCRIPTION
+
+(((options, listener)))
+The `nng_listener_get()` functions are used to retrieve option values for
+the <<nng_listener.5#,listener>> _l_.
+The actual options that may be retrieved in this way
+vary, and many are documented in <<nng_options.5#,nng_options(5)>>.
+
+Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.
+
+=== Forms
+
+In all of these forms, the option _opt_ is retrieved from the listener _l_.
+The forms vary based on the type of the option they take.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_listener_get()`::
+This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in _val_,
+and the size of the buffer shall be stored at the location referenced
+by _valszp_. +
+ +
+When the function returns, the actual size of the data copied (or that
+would have been copied if sufficient space were present) is stored at
+the location referenced by _valszp_.
+If the caller's buffer is not large
+enough to hold the entire object, then the copy is truncated. Therefore
+the caller should validate that the returned size in _valszp_ does not
+exceed the original buffer size to check for truncation. +
+ +
+It is acceptable to pass `NULL` for _val_ if the value in _valszp_ is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_listener_get_bool()`::
+This function is for options which take a Boolean (`bool`).
+The value will be stored at _bvalp_.
+
+`nng_listener_get_int()`::
+This function is for options which take an integer (`int`).
+The value will be stored at _ivalp_.
+
+`nng_listener_get_ms()`::
+This function is used to retrieve time <<nng_duration.5#,durations>>
+(such as timeouts), stored in _durp_ as a number of milliseconds.
+
+`nng_listener_get_ptr()`::
+This function is used to retrieve a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_listener_get_size()`::
+This function is used to retrieve a size into the pointer _zp_,
+typically for buffer sizes, message maximum sizes, and similar options.
+
+`nng_listener_get_addr()`::
+This function is used to retrieve an `<<nng_sockaddr.5#,nng_sockaddr>>`
+into the value referenced by _sap_.
+
+`nng_listener_get_string()`::
+This function is used to retrieve a string into _strp_.
+This string is created from the source using `<<nng_strdup.3#,nng_strdup()>>`
+and consequently must be freed by the caller using
+`<<nng_strfree.3#,nng_strfree()>>` when it is no longer needed.
+
+`nng_listener_get_uint64()`::
+This function is used to retrieve a 64-bit unsigned value into the value
+referenced by _u64p_.
+This is typically used for options related to identifiers, network
+numbers, and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _l_ does not refer to an open listener.
+`NNG_EINVAL`:: Size of destination _val_ too small for object.
+`NNG_ENOMEM`:: Insufficient memory exists.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EWRITEONLY`:: The option _opt_ is write-only.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_listen.3#,nng_listen(3)>>,
+<<nng_listener_create.3#,nng_listener_create(3)>>
+<<nng_listener_set.3#,nng_listener_set(3)>>
+<<nng_socket_get.3#,nng_socket_get(3)>>,
+<<nng_strdup.3#,nng_strdup(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_strfree.3#,nng_strfree(3)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_listener.5#,nng_listener(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng_sockaddr.5#,nng_sockaddr(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_listener_getopt.3.adoc b/docs/man/nng_listener_getopt.3.adoc
index ef5129ca..17ef0e71 100644
--- a/docs/man/nng_listener_getopt.3.adoc
+++ b/docs/man/nng_listener_getopt.3.adoc
@@ -1,6 +1,6 @@
= nng_listener_getopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -36,10 +36,13 @@ int nng_listener_getopt_sockaddr(nng_listener l, const char *opt, nng_sockaddr *
int nng_listener_getopt_string(nng_listener l, const char *opt, char **strp);
int nng_listener_getopt_uint64(nng_listener l, const char *opt, uint64_t *u64p);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_listener_get.3.adoc[nng_listener_get].
+
(((options, listener)))
The `nng_listener_getopt()` functions are used to retrieve option values for
the <<nng_listener.5#,listener>> _l_.
diff --git a/docs/man/nng_listener_set.3.adoc b/docs/man/nng_listener_set.3.adoc
new file mode 100644
index 00000000..e8caf56b
--- /dev/null
+++ b/docs/man/nng_listener_set.3.adoc
@@ -0,0 +1,133 @@
+= nng_listener_set(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_listener_set - set listener option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_listener_set(nng_listener l, const char *opt, const void *val,
+ size_t valsz);
+
+int nng_listener_set_bool(nng_listener l, const char *opt, bool bval);
+
+int nng_listener_set_int(nng_listener l, const char *opt, int ival);
+
+int nng_listener_set_ms(nng_listener l, const char *opt, nng_duration dur);
+
+int nng_listener_set_ptr(nng_listener l, const char *opt, void *ptr);
+
+int nng_listener_set_size(nng_listener l, const char *opt, size_t z);
+
+int nng_listener_set_string(nng_listener l, const char *opt, const char *str);
+
+int nng_listener_set_uint64(nng_listener l, const char *opt, uint64_t u64);
+
+----
+
+== DESCRIPTION
+
+(((options, listener)))
+The `nng_listener_set()` functions are used to configure options for
+the <<nng_listener.5#,listener>> _l_.
+The actual options that may be configured in this way
+vary, and many are documented in <<nng_options.5#,nng_options(5)>>.
+
+Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.
+
+NOTE: Once a listener has started, it is generally not possible to change
+its configuration.
+
+=== Forms
+
+In all of these forms, the option _opt_ is configured on the listener _l_.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_listener_set()`::
+This function is untyped, and can be used to configure any arbitrary data.
+The _val_ pointer addresses the data to copy, and _valsz_ is the
+size of the objected located at _val_.
+
+`nng_listener_set_bool()`::
+This function is for options which take a Boolean (`bool`).
+The _bval_ is passed to the option.
+
+`nng_listener_set_int()`::
+This function is for options which take an integer (`int`).
+The _ival_ is passed to the option.
+
+`nng_listener_set_ms()`::
+This function is used to configure time durations (such as timeouts) using
+type `<<nng_duration.5#,nng_duration>>`.
+The duration _dur_ is an integer number of milliseconds.
+
+`nng_listener_set_ptr()`::
+This function is used to pass a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed by other functions.
+For example, TLS configuration objects created with
+(`<<nng_tls_config_alloc.3tls#,nng_tls_config_alloc()>>`)
+can be passed this way.
+
+NOTE: This form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_listener_set_size()`::
+This function is used to configure a size, _z_, typically for buffer sizes,
+message maximum sizes, and similar options.
+
+`nng_listener_set_string()`::
+This function is used to pass configure a string, _str_.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a `NUL` (`\0`) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)
+
+`nng_listener_set_uint64()`::
+This function is used to configure a 64-bit unsigned value, _u64_.
+This is typically used for options related to identifiers, network numbers,
+and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _l_ does not refer to an open listener.
+`NNG_EINVAL`:: The value being passed is invalid.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EREADONLY`:: The option _opt_ is read-only.
+`NNG_ESTATE`:: The listener _l_ is already started.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_listen.3#,nng_listen(3)>>,
+<<nng_listener_create.3#,nng_listener_create(3)>>
+<<nng_listener_get.3#,nng_listener_get(3)>>
+<<nng_socket_set.3#,nng_socket_set(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_listener.5#,nng_listener(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_listener_setopt.3.adoc b/docs/man/nng_listener_setopt.3.adoc
index 35721bee..ad513921 100644
--- a/docs/man/nng_listener_setopt.3.adoc
+++ b/docs/man/nng_listener_setopt.3.adoc
@@ -1,6 +1,6 @@
= nng_listener_setopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -21,7 +21,7 @@ nng_listener_setopt - set listener option
int nng_listener_setopt(nng_listener l, const char *opt, const void *val,
size_t valsz);
-
+
int nng_listener_setopt_bool(nng_listener l, const char *opt, bool bval);
int nng_listener_setopt_int(nng_listener l, const char *opt, int ival);
@@ -35,10 +35,13 @@ int nng_listener_setopt_size(nng_listener l, const char *opt, size_t z);
int nng_listener_setopt_string(nng_listener l, const char *opt, const char *str);
int nng_listener_setopt_uint64(nng_listener l, const char *opt, uint64_t u64);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_listener_set.3.adoc[nng_listener_set].
+
(((options, listener)))
The `nng_listener_setopt()` functions are used to configure options for
the <<nng_listener.5#,listener>> _l_.
diff --git a/docs/man/nng_pipe_get.3.adoc b/docs/man/nng_pipe_get.3.adoc
new file mode 100644
index 00000000..791827b9
--- /dev/null
+++ b/docs/man/nng_pipe_get.3.adoc
@@ -0,0 +1,153 @@
+= nng_pipe_get(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_pipe_get - get pipe option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_pipe_get(nng_pipe p, const char *opt, void *val, size_t *valszp);
+
+int nng_pipe_get_bool(nng_pipe p, const char *opt, bool *bvalp);
+
+int nng_pipe_get_int(nng_pipe p, const char *opt, int *ivalp);
+
+int nng_pipe_get_ms(nng_pipe p, const char *opt, nng_duration *durp);
+
+int nng_pipe_get_ptr(nng_pipe p, const char *opt, void **ptr);
+
+int nng_pipe_get_addr(nng_pipe p, const char *opt, nng_sockaddr *sap);
+
+int nng_pipe_get_string(nng_pipe p, const char *opt, char **strp);
+
+int nng_pipe_get_size(nng_pipe p, const char *opt, size_t *zp);
+
+int nng_pipe_get_uint64(nng_pipe p, const char *opt, uint64_t *u64p);
+
+----
+
+== DESCRIPTION
+
+(((options, pipe)))
+The `nng_pipe_get()` functions are used to retrieve option values for
+the <<nng_pipe.5#,pipe>> _p_.
+The actual options that may be retrieved in this way
+vary, and many are documented in <<nng_options.5#,nng_options(5)>>.
+Additionally some transport-specific options and protocol-specific options are
+documented with the transports and protocols themselves.
+
+NOTE: All "`options`" on a pipe are read-only values.
+Modification of options may be done before the pipe is created using
+`<<nng_listener_set.3#,nng_listener_set()>>` or
+`<<nng_dialer_get.3#,nng_dialer_set()>>`.
+
+Any option that is set on a dialer or listener will normally be retrievable
+from pipes created by that dialer or listener.
+
+=== Forms
+
+In all of these forms, the option _opt_ is retrieved from the pipe _p_.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_pipe_get()`::
+This is untyped, and can be used to retrieve the value of any option.
+A pointer to a buffer to receive the value in _val_, and the size of the
+buffer shall be stored at the location referenced by _valszp_. +
+ +
+When the function returns, the actual size of the data copied (or that
+would have been copied if sufficient space were present) is stored at
+the location referenced by _valszp_.
+If the caller's buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+size returned in _valszp_ does not exceed the original buffer size. +
+ +
+It is acceptable to pass `NULL` for _val_ if the value in _valszp_ is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_pipe_get_bool()`::
+This function is for options which take a Boolean (`bool`).
+The value will be stored at _bvalp_.
+
+`nng_pipe_get_int()`::
+This function is for options which take an integer (`int`).
+The value will be stored at _ivalp_.
+
+`nng_pipe_get_ms()`::
+This function is used to retrieve time durations
+(`<<nng_duration.5#,nng_duration>>`) in milliseconds, which are stored in
+_durp_.
+
+`nng_pipe_get_ptr()`::
+This function is used to retrieve a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_pipe_get_size()`::
+This function is used to retrieve a size into the pointer _zp_,
+typically for buffer sizes, message maximum sizes, and similar options.
+
+`nng_pipe_get_addr()`::
+This function is used to retrieve an `<<nng_sockaddr.5#,nng_sockaddr>>`
+into _sap_.
+
+`nng_pipe_get_string()`::
+This function is used to retrieve a string into _strp_.
+This string is created from the source using `<<nng_strdup.3#,nng_strdup()>>`
+and consequently must be freed by the caller using
+`<<nng_strfree.3#,nng_strfree()>>` when it is no longer needed.
+
+`nng_pipe_get_uint64()`::
+This function is used to retrieve a 64-bit unsigned value into the value
+referenced by _u64p_.
+This is typically used for options
+related to identifiers, network numbers, and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _p_ does not refer to an open pipe.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_ENOMEM`:: Insufficient memory exists.
+`NNG_EINVAL`:: Size of destination _val_ too small for object.
+`NNG_EWRITEONLY`:: The option _opt_ is write-only.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_dialer_set.3#,nng_dialer_set(3)>>
+<<nng_socket_get.3#,nng_socket_get(3)>>,
+<<nng_listener_set.3#,nng_listener_set(3)>>
+<<nng_msg_get_pipe.3#,nng_msg_get_pipe(3)>>
+<<nng_strdup.3#,nng_strdup(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_strfree.3#,nng_strfree(3)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng_pipe.5#,nng_pipe(5)>>,
+<<nng_sockaddr.5#,nng_sockaddr(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_pipe_getopt.3.adoc b/docs/man/nng_pipe_getopt.3.adoc
index c8242be5..111aa493 100644
--- a/docs/man/nng_pipe_getopt.3.adoc
+++ b/docs/man/nng_pipe_getopt.3.adoc
@@ -1,6 +1,6 @@
= nng_pipe_getopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -36,10 +36,13 @@ int nng_pipe_getopt_string(nng_pipe p, const char *opt, char **strp);
int nng_pipe_getopt_size(nng_pipe p, const char *opt, size_t *zp);
int nng_pipe_getopt_uint64(nng_pipe p, const char *opt, uint64_t *u64p);
+
----
== DESCRIPTION
+NOTE: These functions are deprecated. Please see xref:nng_pipe_get.3.adoc[nng_pipe_get].
+
(((options, pipe)))
The `nng_pipe_getopt()` functions are used to retrieve option values for
the <<nng_pipe.5#,pipe>> _p_.
diff --git a/docs/man/nng_setopt.3.adoc b/docs/man/nng_setopt.3.adoc
index b3b1d3b5..1a3eb233 100644
--- a/docs/man/nng_setopt.3.adoc
+++ b/docs/man/nng_setopt.3.adoc
@@ -1,6 +1,6 @@
= nng_setopt(3)
//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
@@ -34,9 +34,13 @@ int nng_setopt_size(nng_socket s, const char *opt, size_t z);
int nng_setopt_string(nng_socket s, const char *opt, const char *str);
int nng_setopt_uint64(nng_socket s, const char *opt, uint64_t u64);
+
----
== DESCRIPTION
+
+NOTE: These functions are deprecated. Please see xref:nng_socket_set.3.adoc[nng_socket_set].
+
(((options, socket)))
The `nng_setopt()` functions are used to configure options for
the socket _s_.
diff --git a/docs/man/nng_socket_get.3.adoc b/docs/man/nng_socket_get.3.adoc
new file mode 100644
index 00000000..d077207d
--- /dev/null
+++ b/docs/man/nng_socket_get.3.adoc
@@ -0,0 +1,144 @@
+= nng_socket_get(3)
+//
+// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_socket_get - get socket option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_socket_get(nng_socket s, const char *opt, void *val, size_t *valszp);
+
+int nng_socket_get_bool(nng_socket s, const char *opt, bool *bvalp);
+
+int nng_socket_get_int(nng_socket s, const char *opt, int *ivalp);
+
+int nng_socket_get_size(nng_socket s, const char *opt, size_t *zp);
+
+int nng_socket_get_uint64(nng_socket s, const char *opt, uint64_t *u64p);
+
+int nng_socket_get_string(nng_socket s, const char *opt, char **strp);
+
+int nng_socket_get_ptr(nng_socket s, const char *opt, void **ptr);
+
+int nng_socket_get_ms(nng_socket s, const char *opt, nng_duration *durp);
+
+int nng_socket_get_addr(nng_socket s, const char *opt, nng_sockaddr *addrp);
+
+----
+
+== DESCRIPTION
+
+(((options, socket)))
+The `nng_socket_get()` functions are used to retrieve option values for
+the <<nng_socket.5#,socket>> _s_.
+The actual options that may be retrieved in this way vary.
+A number of them are documented in <<nng_options.5#,nng_options(5)>>.
+
+Additionally transport-specific options and protocol-specific options are
+documented with the transports and protocols themselves.
+
+=== Forms
+
+In all of these forms, the option _opt_ is retrieved from the socket _s_.
+The forms vary based on the type of the option they take.
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_socket_get()`::
+This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in _val_,
+and the size of the buffer shall be stored at the location referenced by
+_valszp_.
++
+When the function returns, the actual size of the data copied (or that
+would have been copied if sufficient space were present) is stored at
+the location referenced by _valszp_.
+If the caller's buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in _valszp_ does not exceed the original buffer size.
++
+It is acceptable to pass `NULL` for _val_ if the value in _valszp_ is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.
++
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_socket_get_bool()`::
+This function is for options which take a Boolean (`bool`).
+The value will be stored at _bvalp_.
+
+`nng_socket_get_int()`::
+This function is for options which take an integer (`int`).
+The value will be stored at _ivalp_.
+
+`nng_socket_get_ms()`::
+This function is used to retrieve time <<nng_duration.5#,durations>>
+(such as timeouts), stored in _durp_ as a number of milliseconds.
+(The special value ((`NNG_DUR_INFINITE`)) means an infinite amount of time, and
+the special value ((`NNG_DUR_DEFAULT`)) means a context-specific default.)
+
+`nng_socket_get_ptr()`::
+This function is used to retrieve a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_socket_get_size()`::
+This function is used to retrieve a size into the pointer _zp_,
+typically for buffer sizes, message maximum sizes, and similar options.
+
+`nng_socket_get_string()`::
+This function is used to retrieve a string into _strp_.
+This string is created from the source using `<<nng_strdup.3#,nng_strdup()>>`
+and consequently must be freed by the caller using
+`<<nng_strfree.3#,nng_strfree()>>` when it is no longer needed.
+
+`nng_socket_get_uint64()`::
+This function is used to retrieve a 64-bit unsigned value into the value
+referenced by _u64p_.
+This is typically used for options related to identifiers, network
+numbers, and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_EBADTYPE`:: Incorrect type for option.
+`NNG_ECLOSED`:: Parameter _s_ does not refer to an open socket.
+`NNG_EINVAL`:: Size of destination _val_ too small for object.
+`NNG_ENOMEM`:: Insufficient memory exists.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EWRITEONLY`:: The option _opt_ is write-only.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_dialer_get.3#,nng_dialer_get(3)>>,
+<<nng_listener_get.3#,nng_listener_get(3)>>,
+<<nng_pipe_get.3#,nng_pipe_get(3)>>,
+<<nng_socket_set.3#,nng_socket_set(3)>>,
+<<nng_strdup.3#,nng_strdup(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_strfree.3#,nng_strfree(3)>>,
+<<nng_duration.5#,nng_duration(5)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng_socket.5#,nng_socket(5)>>,
+<<nng.7#,nng(7)>>
diff --git a/docs/man/nng_socket_set.3.adoc b/docs/man/nng_socket_set.3.adoc
new file mode 100644
index 00000000..bb84861a
--- /dev/null
+++ b/docs/man/nng_socket_set.3.adoc
@@ -0,0 +1,124 @@
+= nng_socket_set(3)
+//
+// Copyright 2019 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document 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_socket_set - set socket option
+
+== SYNOPSIS
+
+[source, c]
+----
+#include <nng/nng.h>
+
+int nng_socket_set(nng_socket s, const char *opt, const void *val, size_t valsz);
+
+int nng_socket_set_bool(nng_socket s, const char *opt, bool bval);
+
+int nng_socket_set_int(nng_socket s, const char *opt, int ival);
+
+int nng_socket_set_ms(nng_socket s, const char *opt, nng_duration dur);
+
+int nng_socket_set_ptr(nng_socket s, const char *opt, void *ptr);
+
+int nng_socket_set_size(nng_socket s, const char *opt, size_t z);
+
+int nng_socket_set_string(nng_socket s, const char *opt, const char *str);
+
+int nng_socket_set_uint64(nng_socket s, const char *opt, uint64_t u64);
+
+----
+
+== DESCRIPTION
+(((options, socket)))
+The `nng_socket_set()` functions are used to configure options for
+the socket _s_.
+The actual options that may be configured in this way vary, and are
+specified by _opt_.
+A number of them are documented in <<nng_options.5#,nng_options(5)>>.
+
+Additionally some transport-specific and protocol-specific options are
+documented with the transports and protocols themselves.
+
+=== Forms
+
+The details of the type, size, and semantics of the option will depend
+on the actual option, and will be documented with the option itself.
+
+`nng_socket_set()`::
+This function is untyped, and can be used to configure any arbitrary data.
+The _val_ pointer addresses the data to copy, and _valsz_ is the
+size of the objected located at _val_.
+
+TIP: It may be easier to use one of the typed forms of this function.
+
+`nng_socket_set_bool()`::
+This function is for options which take a Boolean (`bool`).
+The _bval_ is passed to the option.
+
+`nng_socket_set_int()`::
+This function is for options which take an integer (`int`).
+The _ival_ is passed to the option.
+
+`nng_socket_set_ms()`::
+This function is used to configure time durations (such as timeouts) using
+type `<<nng_duration.5#,nng_duration>>`.
+The duration _dur_ is an integer number of milliseconds.
+
+`nng_socket_set_ptr()`::
+This function is used to pass a pointer, _ptr_, to structured data.
+The data referenced by _ptr_ is generally managed by other functions.
+For example, TLS configuration objects created with
+(`<<nng_tls_config_alloc.3tls#,nng_tls_config_alloc()>>`)
+can be passed this way.
+
+NOTE: This form is somewhat special in that the object is generally
+not copied, but instead the *pointer* to the object is copied.
+
+`nng_socket_set_size()`::
+This function is used to configure a size, _z_, typically for buffer sizes,
+message maximum sizes, and similar options.
+
+`nng_socket_set_string()`::
+This function is used to pass configure a string, _str_.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a `NUL` (`\0`) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)
+
+`nng_socket_set_uint64()`::
+This function is used to configure a 64-bit unsigned value, _u64_.
+This is typically used for options related to identifiers, network numbers,
+and similar.
+
+== RETURN VALUES
+
+These functions return 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+[horizontal]
+`NNG_ECLOSED`:: Parameter _s_ does not refer to an open socket.
+`NNG_EINVAL`:: The value being passed is invalid.
+`NNG_ENOTSUP`:: The option _opt_ is not supported.
+`NNG_EREADONLY`:: The option _opt_ is read-only.
+`NNG_ESTATE`:: The socket is in an inappropriate state for setting this option.
+
+== SEE ALSO
+
+[.text-left]
+<<nng_socket_get.3#,nng_socket_get(3)>>,
+<<nng_dialer_set.3#,nng_dialer_set(3)>>,
+<<nng_listener_set.3#,nng_listener_set(3)>>,
+<<nng_strerror.3#,nng_strerror(3)>>,
+<<nng_options.5#,nng_options(5)>>,
+<<nng_socket.5#,nng_socket(5)>>,
+<<nng.7#,nng(7)>>