+
+
The nng_pipe_getopt() functions are used to retrieve option values for
+the pipe p. The actual options that may be retrieved in this way
+vary, and are documented in the nng_getopt(3) manual.
+Additionally some transport-specific options are documented with the
+transports themselves, and some protocol-specific options are documented
+with the protocol.
+
+
+
+
+|
+
+ |
+
+All "options" on a pipe are read-only values, and intended to
+facilitate understanding the identity of an associated peer; modification
+of options must be done on the listener or dialer using either
+nng_listener_setopt(3) or
+nng_dialer_getopt(3)
+ |
+
+
+
+
+
Any option that is set on an endpoint will be retrievable from pipes
+created by that endpoint.
+
+
+
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.
+
+
+
The first form of this function, nng_pipe_getopt(), can be used to
+retrieve the value of any option. It is untyped. 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 referened 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.
+
+
+
Generally, it will be easier to use one of the typed forms instead. Note
+however that 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.
+
+
+
The second form, nng_pipe_getopt_int(),
+is for options which take an integer (or boolean). The value will
+be stored at ivalp. For booleans the value will be eiher 0 (false) or 1 (true).
+
+
+
The third form, nng_pipe_getopt_ms(), is used to retrieve time 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.)
+
+
+
The fourth form, nng_pipe_getopt_size(), is used to retrieve a size
+into the pointer zp, typically for buffer sizes, message maximum sizes, and
+similar options.
+
+
+
The fifth form, nng_pipe_getopt_uint64(), 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.
+
+