aboutsummaryrefslogtreecommitdiff
path: root/docs/nng_msg_insert.adoc
blob: 5b4377f5826f06f7f6bbf341b58af54bd11a8732 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
= nng_msg_insert(3)
:doctype: manpage
:manmanual: nng
:mansource: nng
:manvolnum: 3
:copyright: Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> \
            Copyright 2018 Capitar IT Group BV <info@capitar.com> \
            This software 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_msg_insert, nng_msg_insert_u32 - prepend to message body

== SYNOPSIS

[source, c]
-----------
#include <nng/nng.h>

int nng_msg_insert(nng_msg *msg, const void *val, size_t size);
int nng_msg_insert(nng_msg *msg, uint32_t val32);
-----------

== DESCRIPTION

The `nng_msg_insert()` and `nng_msg_insert_u32()` functions prepend data to
the front of the body of message _msg_, reallocating it if necessary.
The first function prepends _size_ bytes, copying them from _val_.  The
second function prepends the value _val32_ in network-byte order (big-endian).

TIP: This function makes use of pre-allocated "headroom" in the message if
available, so it can often avoid performing any reallocation.  Applications
should use this instead of reallocating and copying message content themselves,
in order to benefit from this capabilitiy.

== RETURN VALUES

This function returns 0 on success, and non-zero otherwise.

== ERRORS

`NNG_ENOMEM`:: Insufficient free memory exists.

== SEE ALSO

<<nng_msg_alloc#,nng_msg_alloc(3)>>,
<<nng_msg_append#,nng_msg_append(3)>>,
<<nng_msg_body#,nng_msg_body(3)>>,
<<nng_msg_chop#,nng_msg_chop(3)>>,
<<nng_msg_free#,nng_msg_free(3)>>,
<<nng_msg_len#,nng_msg_len(3)>>,
<<nng_msg_realloc#,nng_msg_realloc(3)>>,
<<nng_msg_trim#,nng_msg_trim(3)>>,
<<nng_strerror#,nng_strerror(3)>>,
<<nng#,nng(7)>>

== COPYRIGHT

Copyright 2018 mailto:info@staysail.tech[Staysail Systems, Inc.] +
Copyright 2018 mailto:info@capitar.com[Capitar IT Group BV]

This document is supplied under the terms of the
https://opensource.org/licenses/MIT[MIT License].