This was apparently accidentally copied from the other overload but doesn't make sense for this one.
		
			
				
	
	
		
			192 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        base64.h
 | 
						|
// Purpose:     interface of global functions
 | 
						|
// Author:      wxWidgets team
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
 | 
						|
// ============================================================================
 | 
						|
// Global functions/macros
 | 
						|
// ============================================================================
 | 
						|
 | 
						|
/** @addtogroup group_funcmacro_misc */
 | 
						|
//@{
 | 
						|
 | 
						|
/** 
 | 
						|
    Elements of this enum specify the possible behaviours of wxBase64Decode
 | 
						|
    when an invalid character is encountered.
 | 
						|
*/
 | 
						|
enum wxBase64DecodeMode
 | 
						|
{
 | 
						|
    wxBase64DecodeMode_Strict,  ///< Normal behaviour: stop at any invalid characters.
 | 
						|
    wxBase64DecodeMode_SkipWS,  ///< Skip whitespace characters.
 | 
						|
    wxBase64DecodeMode_Relaxed  ///< The most lenient behaviour: simply ignore all invalid characters.
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
    This function encodes the given data using base64.
 | 
						|
 | 
						|
    To allocate the buffer of the correct size, use wxBase64EncodedSize() or
 | 
						|
    call this function with @a dst set to @NULL -- it will then return the
 | 
						|
    necessary buffer size.
 | 
						|
 | 
						|
    This raw encoding function overload writes the output string into the
 | 
						|
    provided buffer; the other overloads return it as a wxString.
 | 
						|
 | 
						|
    @param dst
 | 
						|
        The output buffer, may be @NULL to retrieve the needed buffer size.
 | 
						|
    @param dstLen
 | 
						|
        The output buffer size, ignored if dst is @NULL.
 | 
						|
    @param src
 | 
						|
        The input buffer, must not be @NULL.
 | 
						|
    @param srcLen
 | 
						|
        The length of the input data.
 | 
						|
 | 
						|
    @return @c wxCONV_FAILED if the output buffer is too small.
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
size_t wxBase64Encode(char* dst, size_t dstLen,
 | 
						|
                      const void* src,
 | 
						|
                      size_t srcLen);
 | 
						|
 | 
						|
/**
 | 
						|
    This function encodes the given data using base64 and returns the output as
 | 
						|
    a wxString.
 | 
						|
 | 
						|
    There is no error return.
 | 
						|
 | 
						|
    @param src
 | 
						|
        The input buffer, must not be @NULL.
 | 
						|
    @param srcLen
 | 
						|
        The length of the input data.
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
wxString wxBase64Encode(const void* src, size_t srcLen);
 | 
						|
 | 
						|
/**
 | 
						|
    This function encodes the given data using base64 and returns the output as
 | 
						|
    a wxString.
 | 
						|
 | 
						|
    There is no error return.
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
wxString wxBase64Encode(const wxMemoryBuffer& buf);
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    Returns the size of the buffer necessary to contain the data encoded in a
 | 
						|
    base64 string of length @e srcLen. This can be useful for allocating a
 | 
						|
    buffer to be passed to wxBase64Decode().
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
size_t wxBase64DecodedSize(size_t srcLen);
 | 
						|
 | 
						|
/**
 | 
						|
    Returns the length of the string with base64 representation of a buffer of
 | 
						|
    specified size @e len. This can be useful for allocating the buffer passed
 | 
						|
    to wxBase64Encode().
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
size_t wxBase64EncodedSize(size_t len);
 | 
						|
 | 
						|
/**
 | 
						|
    This function decodes a Base64-encoded string.
 | 
						|
 | 
						|
    This overload is a raw decoding function and decodes the data into the
 | 
						|
    provided buffer @a dst of the given size @e dstLen. An error is returned if
 | 
						|
    the buffer is not large enough -- that is not at least
 | 
						|
    wxBase64DecodedSize(srcLen) bytes. Notice that the buffer will @e not be
 | 
						|
    @NULL-terminated.
 | 
						|
 | 
						|
    This overload returns the number of bytes written to the buffer or the
 | 
						|
    necessary buffer size if @a dst was @NULL or @c wxCONV_FAILED on error,
 | 
						|
    e.g. if the output buffer is too small or invalid characters were
 | 
						|
    encountered in the input string.
 | 
						|
 | 
						|
    @param dst
 | 
						|
        Pointer to output buffer, may be @NULL to just compute the necessary
 | 
						|
        buffer size.
 | 
						|
    @param dstLen
 | 
						|
        The size of the output buffer, ignored if dst is @NULL.
 | 
						|
    @param src
 | 
						|
        The input string, must not be @NULL. For the version using wxString,
 | 
						|
        the input string should contain only ASCII characters.
 | 
						|
    @param srcLen
 | 
						|
        The length of the input string or special value wxNO_LEN if the string
 | 
						|
        is @NULL-terminated and the length should be computed by this function
 | 
						|
        itself.
 | 
						|
    @param mode
 | 
						|
        This parameter specifies the function behaviour when invalid characters
 | 
						|
        are encountered in input. By default, any such character stops the
 | 
						|
        decoding with error. If the mode is wxBase64DecodeMode_SkipWS, then the
 | 
						|
        white space characters are silently skipped instead. And if it is
 | 
						|
        wxBase64DecodeMode_Relaxed, then all invalid characters are skipped.
 | 
						|
    @param posErr
 | 
						|
        If this pointer is non-@NULL and an error occurs during decoding, it is
 | 
						|
        filled with the index of the invalid character.
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
size_t wxBase64Decode(void* dst, size_t dstLen,
 | 
						|
                      const char* src,
 | 
						|
                      size_t srcLen = wxNO_LEN,
 | 
						|
                      wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
 | 
						|
                      size_t *posErr = NULL);
 | 
						|
 | 
						|
/**
 | 
						|
    Decode a Base64-encoded wxString.
 | 
						|
 | 
						|
    See the wxBase64Decode(void*,size_t,const char*,size_t,wxBase64DecodeMode,size_t*)
 | 
						|
    overload for more information about the parameters of this function, the
 | 
						|
    only difference between it and this one is that a wxString is used instead
 | 
						|
    of a @c char* pointer and its length.
 | 
						|
 | 
						|
    @since 2.9.1
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
 */
 | 
						|
size_t wxBase64Decode(void* dst, size_t dstLen,
 | 
						|
                      const wxString& str,
 | 
						|
                      wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
 | 
						|
                      size_t *posErr = NULL);
 | 
						|
 | 
						|
/**
 | 
						|
    Decode a Base64-encoded string and return decoded contents in a buffer.
 | 
						|
 | 
						|
    See the wxBase64Decode(void*,size_t,const char*,size_t,wxBase64DecodeMode,size_t*)
 | 
						|
    overload for more information about the parameters of this function. The
 | 
						|
    difference of this overload is that it allocates a buffer of necessary size
 | 
						|
    on its own and returns it, freeing you from the need to do it manually.
 | 
						|
    Because of this, it is simpler to use and is recommended for normal use.
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
wxMemoryBuffer wxBase64Decode(const char* src,
 | 
						|
                              size_t srcLen = wxNO_LEN,
 | 
						|
                              wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
 | 
						|
                              size_t *posErr = NULL);
 | 
						|
 | 
						|
/**
 | 
						|
    Decode a Base64-encoded wxString and return decoded contents in a buffer.
 | 
						|
 | 
						|
    See the wxBase64Decode(void*,size_t,const char*,size_t,wxBase64DecodeMode,size_t*)
 | 
						|
    overload for more information about the parameters of this function.
 | 
						|
 | 
						|
    This overload takes as input a wxString and returns the internally-allocated
 | 
						|
    memory as a wxMemoryBuffer, containing the Base64-decoded data.
 | 
						|
 | 
						|
    @header{wx/base64.h}
 | 
						|
*/
 | 
						|
wxMemoryBuffer wxBase64Decode(const wxString& src,
 | 
						|
                              wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
 | 
						|
                              size_t *posErr = NULL);
 | 
						|
 | 
						|
//@}
 | 
						|
 |