Dynamic Buffer
Utilities for populating a buffer of variable length. More...
Modules | |
Types | |
Dynamic Buffer data types. | |
Detailed Description
Utilities for populating a buffer of variable length.
Function Documentation
◆ gos_dynamic_buffer_adjust_data_end()
gos_result_t gos_dynamic_buffer_adjust_data_end | ( | gos_dynamic_buffer_t * | buffer, |
int32_t | adjust_amount |
||
) |
Adjust append pointer of buffer
This moves the append
pointer forwards or backwards by (signed)adjust_amount
- Parameters
-
[in] buffer
gos_dynamic_buffer_t [in] adjust_amount
Amount to move append
pointer
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_adjust_data_start()
gos_result_t gos_dynamic_buffer_adjust_data_start | ( | gos_dynamic_buffer_t * | buffer, |
int32_t | adjust_amount |
||
) |
Adjust prepend pointer of buffer
This moves the prepend
pointer forwards or backwards by (signed)adjust_amount
- Parameters
-
[in] buffer
gos_dynamic_buffer_t [in] adjust_amount
Amount to move prepend
pointer
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_alloc()
gos_result_t gos_dynamic_buffer_alloc | ( | gos_dynamic_buffer_t * | buffer, |
uint32_t | length |
||
) |
Allocate dynamic buffer
This allocates a dynamic buffer of the specified length
- Parameters
-
[in] buffer
gos_dynamic_buffer_t object to allocate a buffer for [in] length
Length in bytes of allocated buffer
- Returns
- gos_result_t, result of API
- Examples:
- cloud/dps_demo/main.c.
◆ gos_dynamic_buffer_copy()
gos_result_t gos_dynamic_buffer_copy | ( | gos_dynamic_buffer_t * | dst, |
const gos_dynamic_buffer_t * | src |
||
) |
Copy dynamic buffer
This copies the contents of the src
gos_dynamic_buffer_t into the dst
buffer.
- Parameters
-
[in] dst
Destination buffer to receive copied data from src
[in] src
Source buffer to copy to dst
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_free()
void gos_dynamic_buffer_free | ( | gos_dynamic_buffer_t * | buffer | ) |
De-allocate dynamic buffer
This de-allocates the memory used by a gos_dynamic_buffer_t
- Parameters
-
[in] buffer
Buffer to de-allocate memory
- Examples:
- cloud/dps_demo/main.c.
◆ gos_dynamic_buffer_get_buffer()
gos_result_t gos_dynamic_buffer_get_buffer | ( | const gos_dynamic_buffer_t * | dynamic_buffer, |
gos_buffer_t * | buffer |
||
) |
Get buffer contents
This returns a pointer to the buffer and populated size. e.g.:
- Parameters
-
[in] dynamic_buffer
gos_dynamic_buffer_t [out] buffer
gos_buffer_t to populated with contents
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_get_length()
uint32_t gos_dynamic_buffer_get_length | ( | const gos_dynamic_buffer_t * | buffer | ) |
Get populated data length
This returns the populated data length of the buffer. e.g.:
- Parameters
-
[in] buffer
gos_dynamic_buffer_t
- Returns
- Length of populated data
◆ gos_dynamic_buffer_get_remaining_length()
uint32_t gos_dynamic_buffer_get_remaining_length | ( | const gos_dynamic_buffer_t * | buffer | ) |
Get amount remaining in allocated buffer
This returns the number of unpopulated bytes in the allocated buffer. e.g.:
- Parameters
-
[in] buffer
gos_dynamic_buffer_t
- Returns
- Bytes remaining in allocated buffer
◆ gos_dynamic_buffer_get_total_size()
uint32_t gos_dynamic_buffer_get_total_size | ( | const gos_dynamic_buffer_t * | buffer | ) |
Get allocated buffer size
This return the total size of the gos_dynamic_buffer_t allocated buffer. e.g.:
- Parameters
-
[in] buffer
gos_dynamic_buffer_t
- Returns
- Size of allocated buffer
◆ gos_dynamic_buffer_realloc()
gos_result_t gos_dynamic_buffer_realloc | ( | gos_dynamic_buffer_t * | buffer, |
uint32_t | additional_length |
||
) |
Re-allocate dynamic buffer
This allocates a larger buffer if necessary. After this API returns, the given buffer will have at least additional_length
of additional space.
- Note
- The contents of the previous buffer will remain unchanged.
- Parameters
-
[in] buffer
gos_dynamic_buffer_t object to allocate a larger buffer (if necessary) [in] additional_length
Additional required size
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_reset()
void gos_dynamic_buffer_reset | ( | gos_dynamic_buffer_t * | buffer | ) |
Reset buffer pointers
This resets the gos_dynamic_buffer_t append
and prepend
pointer to the beginning of the allocated buffer.
- Parameters
-
[in] buffer
Buffer to reset
◆ gos_dynamic_buffer_vwrite()
gos_result_t gos_dynamic_buffer_vwrite | ( | gos_dynamic_buffer_t * | buffer, |
const char * | fmt, |
||
va_list | args |
||
) |
Write formatted string to buffer
This writes a formatted string to the gos_dynamic_buffer_t. The gos_dynamic_buffer_t buffer size will increase as necessary.
- Parameters
-
[in] buffer
Buffer to write [in] fmt
Formatted string [in] args
Formatted string arguments
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_write()
gos_result_t gos_dynamic_buffer_write | ( | gos_dynamic_buffer_t * | buffer, |
const void * | data, |
||
uint32_t | data_length |
||
) |
Write data to dynamic buffer
This write data to a gos_dynamic_buffer_t. If the amount of data to write is larger than the buffer's current size then more buffer will be allocated as necessary.
- Parameters
-
[in] buffer
Buffer to write [in] data
Data to write to buffer
[in] data_length
Size in bytes of `data
- Returns
- gos_result_t, result of API
◆ gos_dynamic_buffer_writef()
gos_result_t gos_dynamic_buffer_writef | ( | gos_dynamic_buffer_t * | buffer, |
const char * | fmt, |
||
... |
|||
) |
Write formatted string to buffer
This writes a formatted string to the gos_dynamic_buffer_t. The gos_dynamic_buffer_t buffer size will increase as necessary.
- Parameters
-
[in] buffer
Buffer to write [in] fmt
Formatted string
- Returns
- gos_result_t, result of API