Memory Buffer Management Functions
Memory buffer management functions handle the allocation, expansion, and deallocation of dynamic memory buffers used by some encode/decode functions. More...Classes | |
| struct | OSRTMEMBUF |
Defines | |
| #define | OSMBDFLTSEGSIZE 1024 |
| #define | OSMEMBUFPTR(pmb) ((pmb)->buffer + (pmb)->startidx) |
| #define | OSMEMBUFENDPTR(pmb) ((pmb)->buffer + (pmb)->startidx + (pmb)->usedcnt) |
| #define | OSMEMBUFUSEDSIZE(pmb) ((size_t)(pmb)->usedcnt) |
| #define | OSMBAPPENDSTR(pmb, str) rtxMemBufAppend(pmb,(OSOCTET*)str,OSCRTLSTRLEN(str)) |
| #define | OSMBAPPENDUTF8(pmb, str) rtxMemBufAppend(pmb,(OSOCTET*)str,rtxUTF8LenBytes(str)) |
Functions | |
| EXTERNRT int | rtxMemBufAppend (OSRTMEMBUF *pMemBuf, const OSOCTET *pdata, size_t nbytes) |
| This function appends the data to the end of a memory buffer. | |
| EXTERNRT int | rtxMemBufCut (OSRTMEMBUF *pMemBuf, size_t fromOffset, size_t nbytes) |
| This function cuts off the part of memory buffer. | |
| EXTERNRT void | rtxMemBufFree (OSRTMEMBUF *pMemBuf) |
| This function frees the memory buffer. | |
| EXTERNRT OSOCTET * | rtxMemBufGetData (OSRTMEMBUF *pMemBuf, int *length) |
| This function returns the pointer to the used part of a memory buffer. | |
| EXTERNRT int | rtxMemBufGetDataLen (OSRTMEMBUF *pMemBuf) |
| This function returns the length of the used part of a memory buffer. | |
| EXTERNRT void | rtxMemBufInit (OSCTXT *pCtxt, OSRTMEMBUF *pMemBuf, size_t segsize) |
| This function initializes a memory buffer structure. | |
| EXTERNRT void | rtxMemBufInitBuffer (OSCTXT *pCtxt, OSRTMEMBUF *pMemBuf, OSOCTET *buf, size_t bufsize, size_t segsize) |
| This function assigns a static buffer to the memory buffer structure. | |
| EXTERNRT int | rtxMemBufPreAllocate (OSRTMEMBUF *pMemBuf, size_t nbytes) |
| This function allocates a buffer with a predetermined amount of space. | |
| EXTERNRT void | rtxMemBufReset (OSRTMEMBUF *pMemBuf) |
| This function resets the memory buffer structure. | |
| EXTERNRT int | rtxMemBufSet (OSRTMEMBUF *pMemBuf, OSOCTET value, size_t nbytes) |
| This function sets part of a memory buffer to a specified octet value. | |
| EXTERNRT OSBOOL | rtxMemBufSetExpandable (OSRTMEMBUF *pMemBuf, OSBOOL isExpandable) |
| This function sets "isExpandable" flag for the memory buffer object. | |
| EXTERNRT int | rtxMemBufTrimW (OSRTMEMBUF *pMemBuf) |
| This function trims white space of the memory buffer. | |
Detailed Description
Memory buffer management functions handle the allocation, expansion, and deallocation of dynamic memory buffers used by some encode/decode functions.Dynamic memory buffers are buffers that can grow or shrink to hold variable sized amounts of data. This group of functions allows data to be appended to buffers, to be set within buffers, and to be retrieved from buffers. Currently, these functions are used within the generated SAX decode routines to collect data as it is parsed by an XML parser.
Function Documentation
|
||||||||||||||||
|
This function appends the data to the end of a memory buffer. If the buffer was dynamic and full then the buffer will be reallocated. If it is static (the static buffer was assigned by a call to rtxMemBufInitBuffer) or it is empty (no memory previously allocated) then a new buffer will be allocated.
|
|
||||||||||||||||
|
This function cuts off the part of memory buffer. The beginning of the cutting area is specified by offset "fromOffset" and the length is specified by "nbytes". All data in this part will be lost. The data from the offset "fromOffset + nbytes" will be moved to "fromOffset" offset.
|
|
|
This function frees the memory buffer. If memory was allocated then it will be freed. Do not use the memory buffer structure after this function is called.
|
|
||||||||||||
|
This function returns the pointer to the used part of a memory buffer.
|
|
|
This function returns the length of the used part of a memory buffer.
|
|
||||||||||||||||
|
This function initializes a memory buffer structure. It does not allocate memory; it sets the fields of the structure to the proper states. This function must be called before any operations with the memory buffer.
|
|
||||||||||||||||||||||||
|
This function assigns a static buffer to the memory buffer structure. It does not allocate memory; it sets the pointer to the passed buffer. If additional memory is required (for example, additional data is appended to the buffer using rtxMemBufAppend), a dynamic buffer will be allocated and all data copied to the new buffer.
|
|
||||||||||||
|
This function allocates a buffer with a predetermined amount of space.
|
|
|
This function resets the memory buffer structure. It does not free memory, just sets the pointer to the beginning and the used length to zero.
|
|
||||||||||||||||
|
This function sets part of a memory buffer to a specified octet value. The filling is started from the end of the memory buffer. If the buffer is dynamic and full, then the buffer will be reallocated. If it is static (a static buffer was assigned by a call to rtxMemBufInitBuffer) or it is empty (no memory previously was allocated) then a new buffer will be allocated.
|
|
||||||||||||
|
This function sets "isExpandable" flag for the memory buffer object.
By default, this flag is set to TRUE, thus, memory buffer could be expanded, even if it was initialized by static buffer (see
|
|
|
This function trims white space of the memory buffer.
|
