| nn_symbol(3) |
| ============ |
| |
| NAME |
| ---- |
| nn_symbol - query the names and values of nanomsg symbols |
| |
| |
| SYNOPSIS |
| -------- |
| *#include <nanomsg/nn.h>* |
| |
| *const char *nn_symbol (int 'i', int '*value');* |
| |
| |
| DESCRIPTION |
| ----------- |
| Retrieves the symbol name and value at index 'i'. Indices start at 0. An index |
| has no significance to its associated symbol; the mappings may change between |
| library versions. |
| |
| Typically a client will iterate through the symbols until nn_symbol returns |
| NULL in order to collect all the symbols. |
| |
| All symbols exposed by 'nn_symbol' are available directly in the C API, |
| generally as preprocessor macros. Thus, this function is useful mostly for |
| language bindings that can't parse the header file and rely on retrieving the |
| symbols in the runtime. |
| |
| Note that the NN_MSG symbol is not exported by the _nn_symbol_ function. First, |
| it is a pointer rather than an integer; second, the symbol is not supposed to |
| be exported from language bindings to the user. Instead, language bindings |
| should provide the zero-copy functionality in a language-specific way, if at |
| all (zero-copy functionality may not make sense for some languages/bindings). |
| |
| |
| RETURN VALUE |
| ------------ |
| If 'i' is valid, returns the name of the symbol at that index. If the pointer |
| 'value' is not NULL, the symbol's value is stored there. |
| |
| If 'i' is out-of-range, nn_symbol returns NULL and sets 'errno' to EINVAL. |
| |
| |
| ERRORS |
| ------ |
| *EINVAL*:: |
| The passed index 'i' was out-of-range; it was less than zero or greater-than-or- |
| equal-to the number of symbols. |
| |
| |
| EXAMPLE |
| ------- |
| |
| ---- |
| int value, i; |
| for (i = 0; ; ++i) { |
| const char* name = nn_symbol (i, &value); |
| if (name == NULL) break; |
| printf ("'%s' = %d\n", name, value); |
| } |
| ---- |
| |
| SEE ALSO |
| -------- |
| linknanomsg:nn_symbol_info[3] |
| linknanomsg:nn_errno[3] |
| linknanomsg:nn_strerror[3] |
| linknanomsg:nanomsg[7] |
| |
| |
| AUTHORS |
| ------- |
| Evan Wies <evan@neomantra.net> |