| Wireshark 4.7.0 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
wmem_strbuf.h
Go to the documentation of this file.
1
12#ifndef __WMEM_STRBUF_H__
13#define __WMEM_STRBUF_H__
14
15#include <ws_codepoints.h>
16
17#include "wmem_core.h"
18
19#ifdef __cplusplus
20 extern "C" {
21#endif /* __cplusplus */
22
38 struct _wmem_strbuf_t {
42 wmem_allocator_t *allocator;
43
48 char *str;
49
54 size_t len;
55
60 size_t alloc_size;
61};
62
63 typedef struct _wmem_strbuf_t wmem_strbuf_t;
64
75WS_DLL_PUBLIC
76 wmem_strbuf_t *
77 wmem_strbuf_new_sized(wmem_allocator_t *allocator, size_t alloc_size);
78
89WS_DLL_PUBLIC
90 wmem_strbuf_t *
91 wmem_strbuf_new(wmem_allocator_t *allocator, const char *str);
92
93
103#define wmem_strbuf_create(allocator) \
104 wmem_strbuf_new(allocator, "")
105
118WS_DLL_PUBLIC
119 wmem_strbuf_t *
120 wmem_strbuf_new_len(wmem_allocator_t *allocator, const char *str, size_t len);
121
132WS_DLL_PUBLIC
133 wmem_strbuf_t *
134 wmem_strbuf_dup(wmem_allocator_t *allocator, const wmem_strbuf_t *strbuf);
135
145WS_DLL_PUBLIC
146 void
147 wmem_strbuf_append(wmem_strbuf_t *strbuf, const char *str);
148
160WS_DLL_PUBLIC
161 void
162 wmem_strbuf_append_len(wmem_strbuf_t *strbuf, const char *str, size_t append_len);
163
174WS_DLL_PUBLIC
175 void
176 wmem_strbuf_append_printf(wmem_strbuf_t *strbuf, const char *format, ...)
177G_GNUC_PRINTF(2, 3);
178
190WS_DLL_PUBLIC
191 void
192 wmem_strbuf_append_vprintf(wmem_strbuf_t *strbuf, const char *fmt, va_list ap);
193
203WS_DLL_PUBLIC
204 void
205 wmem_strbuf_append_c(wmem_strbuf_t *strbuf, const char c);
206
217WS_DLL_PUBLIC
218 void
219 wmem_strbuf_append_c_count(wmem_strbuf_t *strbuf, const char c, size_t count);
220
231WS_DLL_PUBLIC
232 void
233 wmem_strbuf_append_unichar(wmem_strbuf_t *strbuf, const gunichar c);
234
243#define wmem_strbuf_append_unichar_repl(buf) \
244 wmem_strbuf_append_unichar(buf, UNICODE_REPLACEMENT_CHARACTER)
245
257WS_DLL_PUBLIC
258 void
259 wmem_strbuf_append_unichar_validated(wmem_strbuf_t *strbuf, const gunichar c);
260
271WS_DLL_PUBLIC
272 void
273 wmem_strbuf_append_hex(wmem_strbuf_t *strbuf, uint8_t ch);
274
285WS_DLL_PUBLIC
286 size_t
287 wmem_strbuf_append_hex_unichar(wmem_strbuf_t *strbuf, gunichar ch);
288
301WS_DLL_PUBLIC
302 void
303 wmem_strbuf_truncate(wmem_strbuf_t *strbuf, const size_t len);
304
314WS_DLL_PUBLIC
315 const char *
316 wmem_strbuf_get_str(const wmem_strbuf_t *strbuf);
317
328WS_DLL_PUBLIC
329 size_t
330 wmem_strbuf_get_len(const wmem_strbuf_t *strbuf);
331
345WS_DLL_PUBLIC
346 int
347 wmem_strbuf_strcmp(const wmem_strbuf_t *sb1, const wmem_strbuf_t *sb2);
348
360WS_DLL_PUBLIC
361 const char *
362 wmem_strbuf_strstr(const wmem_strbuf_t *haystack, const wmem_strbuf_t *needle);
363
378WS_DLL_PUBLIC
379 char *
380 wmem_strbuf_finalize(wmem_strbuf_t *strbuf);
381
394WS_DLL_PUBLIC
395 void
396 wmem_strbuf_destroy(wmem_strbuf_t *strbuf);
397
410WS_DLL_PUBLIC
411 bool
412 wmem_strbuf_utf8_validate(wmem_strbuf_t *strbuf, const char **endptr);
413
414
426WS_DLL_PUBLIC
427 void
428 wmem_strbuf_utf8_make_valid(wmem_strbuf_t *strbuf);
429
433#ifdef __cplusplus
434}
435#endif /* __cplusplus */
436
437#endif /* __WMEM_STRBUF_H__ */
438
439/*
440 * Editor modelines - https://www.wireshark.org/tools/modelines.html
441 *
442 * Local variables:
443 * c-basic-offset: 4
444 * tab-width: 8
445 * indent-tabs-mode: nil
446 * End:
447 *
448 * vi: set shiftwidth=4 tabstop=8 expandtab:
449 * :indentSize=4:tabSize=8:noTabs=true:
450 */
wmem_strbuf_append_vprintf
WS_DLL_PUBLIC void wmem_strbuf_append_vprintf(wmem_strbuf_t *strbuf, const char *fmt, va_list ap)
Append formatted text to a string buffer using a va_list.
Definition wmem_strbuf.c:182
wmem_strbuf_utf8_make_valid
WS_DLL_PUBLIC void wmem_strbuf_utf8_make_valid(wmem_strbuf_t *strbuf)
Ensure the contents of a wmem string buffer are valid UTF-8.
Definition wmem_strbuf.c:446
wmem_strbuf_new_sized
WS_DLL_PUBLIC wmem_strbuf_t * wmem_strbuf_new_sized(wmem_allocator_t *allocator, size_t alloc_size)
Create a new string buffer with a specified initial allocation size.
Definition wmem_strbuf.c:31
wmem_strbuf_get_str
WS_DLL_PUBLIC const char * wmem_strbuf_get_str(const wmem_strbuf_t *strbuf)
Retrieve the current string content from a wmem string buffer.
Definition wmem_strbuf.c:337
wmem_strbuf_append_unichar
WS_DLL_PUBLIC void wmem_strbuf_append_unichar(wmem_strbuf_t *strbuf, const gunichar c)
Append a Unicode character to a string buffer.
Definition wmem_strbuf.c:233
wmem_strbuf_append_unichar_validated
WS_DLL_PUBLIC void wmem_strbuf_append_unichar_validated(wmem_strbuf_t *strbuf, const gunichar c)
Append a validated Unicode character to a string buffer.
Definition wmem_strbuf.c:248
wmem_strbuf_append_c_count
WS_DLL_PUBLIC void wmem_strbuf_append_c_count(wmem_strbuf_t *strbuf, const char c, size_t count)
Append a character to a string buffer multiple times.
Definition wmem_strbuf.c:222
wmem_strbuf_utf8_validate
WS_DLL_PUBLIC bool wmem_strbuf_utf8_validate(wmem_strbuf_t *strbuf, const char **endptr)
Validate the contents of a wmem string buffer as UTF-8.
Definition wmem_strbuf.c:440
wmem_strbuf_new_len
WS_DLL_PUBLIC wmem_strbuf_t * wmem_strbuf_new_len(wmem_allocator_t *allocator, const char *str, size_t len)
Create a new string buffer initialized with a substring of specified length.
Definition wmem_strbuf.c:49
wmem_strbuf_append_len
WS_DLL_PUBLIC void wmem_strbuf_append_len(wmem_strbuf_t *strbuf, const char *str, size_t append_len)
Append a specified number of bytes from a string to a string buffer.
Definition wmem_strbuf.c:141
wmem_strbuf_get_len
WS_DLL_PUBLIC size_t wmem_strbuf_get_len(const wmem_strbuf_t *strbuf)
Retrieve the current length of a wmem string buffer.
Definition wmem_strbuf.c:343
wmem_strbuf_append_hex_unichar
WS_DLL_PUBLIC size_t wmem_strbuf_append_hex_unichar(wmem_strbuf_t *strbuf, gunichar ch)
Append a hexadecimal representation of a Unicode character to a wmem string buffer.
Definition wmem_strbuf.c:311
wmem_strbuf_strcmp
WS_DLL_PUBLIC int wmem_strbuf_strcmp(const wmem_strbuf_t *sb1, const wmem_strbuf_t *sb2)
Compare the contents of two wmem string buffers.
Definition wmem_strbuf.c:366
wmem_strbuf_new
WS_DLL_PUBLIC wmem_strbuf_t * wmem_strbuf_new(wmem_allocator_t *allocator, const char *str)
Create a new string buffer initialized with a copy of the given string.
Definition wmem_strbuf.c:74
wmem_strbuf_finalize
WS_DLL_PUBLIC char * wmem_strbuf_finalize(wmem_strbuf_t *strbuf)
Finalize a wmem string buffer and extract its raw string.
Definition wmem_strbuf.c:382
wmem_strbuf_destroy
WS_DLL_PUBLIC void wmem_strbuf_destroy(wmem_strbuf_t *strbuf)
Destroy a wmem string buffer and release its associated memory.
Definition wmem_strbuf.c:395
wmem_strbuf_append_c
WS_DLL_PUBLIC void wmem_strbuf_append_c(wmem_strbuf_t *strbuf, const char c)
Append a single character to a string buffer.
Definition wmem_strbuf.c:212
wmem_strbuf_append_printf
WS_DLL_PUBLIC void wmem_strbuf_append_printf(wmem_strbuf_t *strbuf, const char *format,...)
Append formatted text to a string buffer.
Definition wmem_strbuf.c:202
wmem_strbuf_strstr
WS_DLL_PUBLIC const char * wmem_strbuf_strstr(const wmem_strbuf_t *haystack, const wmem_strbuf_t *needle)
Search for a substring within a wmem string buffer.
Definition wmem_strbuf.c:372
wmem_strbuf_truncate
WS_DLL_PUBLIC void wmem_strbuf_truncate(wmem_strbuf_t *strbuf, const size_t len)
Truncate a wmem string buffer to a specified length.
Definition wmem_strbuf.c:326
wmem_strbuf_dup
WS_DLL_PUBLIC wmem_strbuf_t * wmem_strbuf_dup(wmem_allocator_t *allocator, const wmem_strbuf_t *strbuf)
Duplicate an existing string buffer using the specified memory allocator.
Definition wmem_strbuf.c:80
wmem_strbuf_append
WS_DLL_PUBLIC void wmem_strbuf_append(wmem_strbuf_t *strbuf, const char *str)
Append a null-terminated string to the end of a string buffer.
Definition wmem_strbuf.c:123
wmem_strbuf_append_hex
WS_DLL_PUBLIC void wmem_strbuf_append_hex(wmem_strbuf_t *strbuf, uint8_t ch)
Append a hexadecimal representation of a byte to a wmem string buffer.
Definition wmem_strbuf.c:263
_wmem_allocator_t
Internal memory allocator interface used by the wmem subsystem.
Definition wmem_allocator.h:34
_wmem_strbuf_t
Internal structure representing a wmem-allocated string buffer.
Definition wmem_strbuf.h:38
_wmem_strbuf_t::alloc_size
size_t alloc_size
Definition wmem_strbuf.h:60
_wmem_strbuf_t::allocator
wmem_allocator_t * allocator
Definition wmem_strbuf.h:42
_wmem_strbuf_t::str
char * str
Definition wmem_strbuf.h:48
_wmem_strbuf_t::len
size_t len
Definition wmem_strbuf.h:54
wmem_core.h