diff options
| author | Jake Woltersdorf <jake@playruyi.com> | 2019-03-04 12:35:19 +0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2019-04-07 19:13:44 -0700 |
| commit | c3e062661388f70386d6766e3ce648030af340ee (patch) | |
| tree | a6d247bd24a17e3201a75b1a164e75d16e37196c /docs | |
| parent | 989c5e90d48066b12ad44ed903cfc163d8e89b29 (diff) | |
| download | nng-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.txt | 9 | ||||
| -rw-r--r-- | docs/man/libnng.3.adoc | 9 | ||||
| -rw-r--r-- | docs/man/nng_ctx_get.3.adoc | 131 | ||||
| -rw-r--r-- | docs/man/nng_ctx_getopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_ctx_set.3.adoc | 113 | ||||
| -rw-r--r-- | docs/man/nng_ctx_setopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_dialer_get.3.adoc | 147 | ||||
| -rw-r--r-- | docs/man/nng_dialer_getopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_dialer_set.3.adoc | 131 | ||||
| -rw-r--r-- | docs/man/nng_dialer_setopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_getopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_listener_get.3.adoc | 147 | ||||
| -rw-r--r-- | docs/man/nng_listener_getopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_listener_set.3.adoc | 133 | ||||
| -rw-r--r-- | docs/man/nng_listener_setopt.3.adoc | 7 | ||||
| -rw-r--r-- | docs/man/nng_pipe_get.3.adoc | 153 | ||||
| -rw-r--r-- | docs/man/nng_pipe_getopt.3.adoc | 5 | ||||
| -rw-r--r-- | docs/man/nng_setopt.3.adoc | 6 | ||||
| -rw-r--r-- | docs/man/nng_socket_get.3.adoc | 144 | ||||
| -rw-r--r-- | docs/man/nng_socket_set.3.adoc | 124 |
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)>> |
