diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-03-30 15:57:15 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-03-30 15:57:15 -0700 |
| commit | 9b156d28f1a830cc7339ab9993991ef5dd0b0fed (patch) | |
| tree | 8de1dbfa070a080b4d3df43974255fafbde54d53 /docs/reference/src/api/msg/index.md | |
| parent | d38c90f0b429df3c13fb13f87481b73465d2eae5 (diff) | |
| download | nng-9b156d28f1a830cc7339ab9993991ef5dd0b0fed.tar.gz nng-9b156d28f1a830cc7339ab9993991ef5dd0b0fed.tar.bz2 nng-9b156d28f1a830cc7339ab9993991ef5dd0b0fed.zip | |
Organization changes abound.
Diffstat (limited to 'docs/reference/src/api/msg/index.md')
| -rw-r--r-- | docs/reference/src/api/msg/index.md | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/docs/reference/src/api/msg/index.md b/docs/reference/src/api/msg/index.md deleted file mode 100644 index 54d8d9b8..00000000 --- a/docs/reference/src/api/msg/index.md +++ /dev/null @@ -1,97 +0,0 @@ -# Messages - -Messages in Scalability Protocols are the fundamental unit of transmission -and reception, -as these protocols are fundamentally message-oriented. - -## {{i: Message object}} - -An `nng_msg` represents a single {{i:message}} sent between Scalability Protocols peers. - -Messages have a {{i:body}}, containing the application supplied -payload, and a {{i:header}}, containing protocol specific routing and similar -related information. - -> [!TIP] -> Only applications using [raw](../../overview/raw.md) mode need to -> access the message header. - -### Creating, Destroying and Using - -Messages are allocated using [`nng_msg_alloc()`](nng_msg_alloc.md), -and are deallocated using [`nng_msg_free()`](nng_msg_free.md). - -In addition there are other functions used to access message contents, -including adding data to either the beginning or end of the message, -automatic data conversion, and removing data from the beginning or end. - -### Performance Considerations - -While there are convenience wrappers for sending and receiving arrays of -bytes, using message objects directly when possible will give better -performance by reducing data copies and needless allocations. - -These functions are designed to try to avoid copying message contents -by making use of scratch areas at the beginning and end of the message. -These scratch areas, the "headroom" and "tailroom", are automatically -included when allocating a message. - -### Direct Use Forbidden - -The `nng_msg` structure is opaque, and applications should never try to -rely on the size of it, nor access internal members directly. -This insulates the application from changes in subsequent _NNG_ versions -that would affect the binary representation of the `nng_msg` itself. - -## Examples - -### Example 1: Preparing a message for use - -```c - #include <nng/nng.h> - - nng_msg *m; - if (nng_msg_alloc(&m, strlen("content") + 1) != 0) { - // handle error - } - strcpy(nng_msg_body(m), "content"); -``` - -### Example 2: Preallocating message content - -```c - if (nng_msg_alloc(&m, 1024) != 0) { - // handle error - } - while ((val64 = next_datum()) != 0) P - if (nng_msg_append_u64(m, val64) != 0) { - // handle error - } - } -``` - -## See Also - -[nng_aio_get_msg](../aio/nng_aio_get_msg.md), -[nng_aio_set_msg](../aio/nng_aio_set_msg.md), -[nng_msg_alloc](nng_msg_alloc.md), -[nng_msg_append](nng_msg_append.md), -[nng_msg_body](nng_msg_body.md), -[nng_msg_capacity](nng_msg_capacity.md), -[nng_msg_dup](nng_msg_dup.md), -[nng_msg_free](nng_msg_free.md), -[nng_msg_header](nng_msg_header.md), -[nng_msg_header_append](nng_msg_header_append.md), -[nng_msg_header_chop](nng_msg_header_chop.md), -[nng_msg_header_clear](nng_msg_header_clear.md), -[nng_msg_header_insert](nng_msg_header_insert.md), -[nng_msg_header_len](nng_msg_header_len.md), -[nng_msg_header_trim](nng_msg_header_trim.md), -[nng_msg_insert](nng_msg_insert.md), -[nng_msg_len](nng_msg_len.md), -[nng_msg_reserve](nng_msg_reserve.md), -[nng_msg_realloc](nng_msg_realloc.md), -[nng_msg_set_pipe](nng_msg_set_pipe.md), -[nng_msg_trim](nng_msg_trim.md), -[nng_recvmsg](../socket/nng_recvmsg.md), -[nng_sendmsg](../socket/nng_sendmsg.md) |
