From 7092fa31f447d1750dc560cea49052b3e4f57620 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 13 Mar 2018 21:15:40 -0700 Subject: Introduce nng_options, nng_setopt, nng_getopt manual pages. This starts a new section 5 for generic topics, and sets up some links for things like nng_duration and nng_socket types. There will some day be an nng_errors(5) page as well. Some initial work towards indexing terms for these pages is done now too. (Indexing will mostly be useful when generating book forms of this documentation.) --- docs/man/nng_setopt.adoc | 116 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 docs/man/nng_setopt.adoc (limited to 'docs/man/nng_setopt.adoc') diff --git a/docs/man/nng_setopt.adoc b/docs/man/nng_setopt.adoc new file mode 100644 index 00000000..482d8c2b --- /dev/null +++ b/docs/man/nng_setopt.adoc @@ -0,0 +1,116 @@ += nng_setopt(3) +// +// Copyright 2018 Staysail Systems, Inc. +// Copyright 2018 Capitar IT Group BV +// +// 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_setopt - set socket option + +== SYNOPSIS + +[source, c] +----------- +#include + +int nng_setopt(nng_socket s, const char *opt, const void *val, size_t valsz); + +int nng_setopt_int(nng_socket s, const char *opt, int ival); + +int nng_setopt_ms(nng_socket s, const char *opt, nng_duration dur); + +int nng_setopt_ptr(nng_socket s, const char *opt, void *ptr); + +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 + +The `((nng_setopt))()` 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 <>. + +Additionally some transport-specific and protocol-specific options are +documented with the transports and protocols themselves. + +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: Generally, it will be easier to use one of the typed versions +of this function. + +NOTE: No validation that the option is actually of the associated +type is performed, so the caller must take care to use the *correct* typed form. + +`nng_setopt()`:: +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_setopt_int()`:: +This function is for options which take an integer (`int`) or boolean (`bool`). +The _ival_ is passed to the option. +For booleans pass either 0 (`false`) or 1 (`true`). + +`nng_setopt_ms()`:: +This function is used to configure time durations (such as timeouts). +The duration _dur_ is an integer number of milliseconds. +(The special value ((`NNG_DUR_INFINITE`)) means an infinite amount of time.) + +`nng_setopt_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 +(<>) can be passed this way. +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_setopt_size()`:: +This function is used to configure a size, _z_, typically for buffer sizes, +message maximum sizes, and similar options. + +`nng_setopt_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_setopt_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 + +This function returns 0 on success, and non-zero otherwise. + +== ERRORS + +`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] +<>, +<>, +<>, +<>, +<>, +<> -- cgit v1.2.3-70-g09d2