summaryrefslogtreecommitdiff
path: root/docs/reference/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-03-26 23:24:12 -0700
committerGarrett D'Amore <garrett@damore.org>2024-03-26 23:24:12 -0700
commita99096840498f367550bde7cb321b8f83b58c559 (patch)
treeaf25dadbc6ecb43c37b5759cd7d98fde3cbb1587 /docs/reference/src
parent43331fdf0e5cf98e6aa553985df5113a8a7718f6 (diff)
downloadnng-a99096840498f367550bde7cb321b8f83b58c559.tar.gz
nng-a99096840498f367550bde7cb321b8f83b58c559.tar.bz2
nng-a99096840498f367550bde7cb321b8f83b58c559.zip
Add some utility functions.
Diffstat (limited to 'docs/reference/src')
-rw-r--r--docs/reference/src/SUMMARY.md3
-rw-r--r--docs/reference/src/api/util/nng_msleep.md28
-rw-r--r--docs/reference/src/api/util/nng_strdup.md46
-rw-r--r--docs/reference/src/api/util/nng_strfree.md39
4 files changed, 116 insertions, 0 deletions
diff --git a/docs/reference/src/SUMMARY.md b/docs/reference/src/SUMMARY.md
index aa705d44..a047101d 100644
--- a/docs/reference/src/SUMMARY.md
+++ b/docs/reference/src/SUMMARY.md
@@ -95,8 +95,11 @@
- [nng_alloc](api/util/nng_alloc.md)
- [nng_clock](api/util/nng_clock.md)
- [nng_free](api/util/nng_free.md)
+ - [nng_msleep](api/util/nng_msleep.md)
- [nng_random](api/util/nng_random.md)
+ - [nng_strdup](api/util/nng_strdup.md)
- [nng_strerror](api/util/nng_strerror.md)
+ - [nng_strfree](api/util/nng_strfree.md)
- [nng_version](api/util/nng_version.md)
- [Threads and Synchronization](api/threads/index.md)
diff --git a/docs/reference/src/api/util/nng_msleep.md b/docs/reference/src/api/util/nng_msleep.md
new file mode 100644
index 00000000..06dd16a6
--- /dev/null
+++ b/docs/reference/src/api/util/nng_msleep.md
@@ -0,0 +1,28 @@
+# nng_msleep
+
+## NAME
+
+nng_msleep --- sleep milliseconds
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+#include <nng/supplemental/util/platform.h>
+
+void nng_msleep(nng_duration msec);
+```
+
+## DESCRIPTION
+
+The `nng_msleep()` blocks the caller for at least _msec_ milliseconds.
+
+> [!NOTE]
+> This function may block for longer than requested.
+> The actual wait time is determined by the capabilities of the
+> underlying system.
+
+## SEE ALSO
+
+[nng_sleep_aio](nng_sleep_aio.md),
+[nng_clock](nng_clock.md)
diff --git a/docs/reference/src/api/util/nng_strdup.md b/docs/reference/src/api/util/nng_strdup.md
new file mode 100644
index 00000000..b8d2fe42
--- /dev/null
+++ b/docs/reference/src/api/util/nng_strdup.md
@@ -0,0 +1,46 @@
+# nng_strdup
+
+## NAME
+
+nng_strdup --- duplicate string
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+
+char *nng_strdup(const char *src);
+```
+
+## DESCRIPTION
+
+The `nng_strdup()` duplicates the string _src_ and returns it.
+
+This is logically equivalent to using [`nng_alloc()`](nng_alloc.md)
+to allocate a region of memory of `strlen(s) + 1` bytes, and then
+using `strcpy()` to copy the string into the destination before
+returning it.
+
+The returned string should be deallocated with
+[`nng_strfree()`](nng_strfree.md), or may be deallocated using the
+[`nng_free()`](nng_free.md) using the length of the returned string plus
+one (for the `NUL` terminating byte).
+
+> [!IMPORTANT]
+> Do not use the system `free()` or similar functions to deallocate
+> the string, since those may use a different memory arena!
+
+## RETURN VALUES
+
+This function returns the new string on success, and `NULL` on failure.
+
+## ERRORS
+
+No errors are returned, but a `NULL` return value should be
+treated the same as `NNG_ENOMEM`.
+
+## SEE ALSO
+
+[nng_alloc.md](nng_alloc.md),
+[nng_free.md](nng_free.md),
+[nng_strfree.md](nng_strfree.md)
diff --git a/docs/reference/src/api/util/nng_strfree.md b/docs/reference/src/api/util/nng_strfree.md
new file mode 100644
index 00000000..cca7950d
--- /dev/null
+++ b/docs/reference/src/api/util/nng_strfree.md
@@ -0,0 +1,39 @@
+# nng_strfree
+
+## NAME
+
+nng_strfree --- free memory
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+
+void nng_strfree(char *str);
+```
+
+## DESCRIPTION
+
+The `nng_strfree()` function deallocates the string _str_.
+This is equivalent to using [`nng_free()`](nng_free.md) with
+the length of _str_ plus one (for the `NUL` terminating byte) as
+the size.
+
+> [!IMPORTANT]
+> This should only be used with strings that were allocated
+> by [`nng_strdup()`](nng_strdup.md) or [`nng_alloc()`](nng_alloc.md).
+> In all cases, the allocation size of the string must be the same
+> as `strlen(__str__) + 1`.
+
+> [!IMPORTANT]
+> Consequently, if the a string created with
+> [`nng_strdup()`](nng_strfree.md) is modified to be shorter, then
+> it is incorrect to call this function.
+> (The [`nng_free()`](nng_Free.md) function can be used instead in that
+> case, using the length of the original string plus one for the size.)
+
+## SEE ALSO
+
+[nng_alloc](nng_alloc.md),
+[nng_free](nng_free.md),
+[nng_strdup](nng_strdup.md)