VirtualBox

Changeset 73587 in vbox for trunk/include


Ignore:
Timestamp:
Aug 9, 2018 1:37:52 PM (6 years ago)
Author:
vboxsync
Message:

iptr/base64: introduce RTBase64EncodedLengthEx() and RTBase64EncodeEx(),
and RTBASE64_FLAGS_NO_LINE_BREAKS flag for them.

Location:
trunk/include/iprt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/base64.h

    r69105 r73587  
    4343# define RTBASE64_EOL_SIZE      (sizeof("\n")   - 1)
    4444#endif
     45
     46
     47/** @name Flags for RTBase64EncodeEx() and RTBase64EncodedLengthEx().
     48 * @{ */
     49/** Insert line breaks into encoded string.
     50 * The size of the end-of-line marker is that that of the host platform.
     51 */
     52#define RTBASE64_FLAGS_NO_LINE_BREAKS RT_BIT_32(0)
     53/** @} */
     54
    4555
    4656/**
     
    121131                             size_t *pcbActual, char **ppszEnd);
    122132
     133
    123134/**
    124135 * Calculates the length of the Base64 encoding of a given number of bytes of
    125  * data.
    126  *
    127  * This will assume line breaks every 64 chars. A RTBase64EncodedLengthEx
    128  * function can be added if closer control over the output is found to be
    129  * required.
     136 * data produced by RTBase64Encode().
    130137 *
    131138 * @returns The Base64 string length.
     
    135142
    136143/**
     144 * Calculates the length of the Base64 encoding of a given number of bytes of
     145 * data produced by RTBase64EncodeEx() with the same @a fFlags.
     146 *
     147 * @returns The Base64 string length.
     148 * @param   cbData      The number of bytes to encode.
     149 * @param   fFlags      Flags, any combination of the RTBASE64_FLAGS \#defines.
     150 */
     151RTDECL(size_t) RTBase64EncodedLengthEx(size_t cbData, uint32_t fFlags);
     152
     153/**
    137154 * Encodes the specifed data into a Base64 string, the caller supplies the
    138155 * output buffer.
    139156 *
    140  * This will make the same assumptions about line breaks and EOL size as
    141  * RTBase64EncodedLength() does. A RTBase64EncodeEx function can be added if
    142  * more strict control over the output formatting is found necessary.
     157 * This is equivalent to calling RTBase64EncodeEx() with no flags.
    143158 *
    144159 * @returns IRPT status code.
     
    154169RTDECL(int) RTBase64Encode(const void *pvData, size_t cbData, char *pszBuf, size_t cbBuf, size_t *pcchActual);
    155170
     171/**
     172 * Encodes the specifed data into a Base64 string, the caller supplies the
     173 * output buffer.
     174 *
     175 * @returns IRPT status code.
     176 * @retval  VERR_BUFFER_OVERFLOW if the output buffer is too small. The buffer
     177 *          may contain an invalid Base64 string.
     178 *
     179 * @param   pvData      The data to encode.
     180 * @param   cbData      The number of bytes to encode.
     181 * @param   pszBuf      Where to put the Base64 string.
     182 * @param   cbBuf       The size of the output buffer, including the terminator.
     183 * @param   pcchActual  The actual number of characters returned.
     184 */
     185RTDECL(int) RTBase64EncodeEx(const void *pvData, size_t cbData, uint32_t fFlags,
     186                             char *pszBuf, size_t cbBuf, size_t *pcchActual);
     187
    156188/** @}  */
    157189
  • trunk/include/iprt/mangling.h

    r73494 r73587  
    575575# define RTBase64DecodedSizeEx                          RT_MANGLER(RTBase64DecodedSizeEx)
    576576# define RTBase64Encode                                 RT_MANGLER(RTBase64Encode)
     577# define RTBase64EncodeEx                               RT_MANGLER(RTBase64EncodeEx)
    577578# define RTBase64EncodedLength                          RT_MANGLER(RTBase64EncodedLength)
     579# define RTBase64EncodedLengthEx                        RT_MANGLER(RTBase64EncodedLengthEx)
    578580# define RTBldCfgCompiler                               RT_MANGLER(RTBldCfgCompiler)
    579581# define RTBldCfgRevision                               RT_MANGLER(RTBldCfgRevision)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette