MRPT
1.9.9
|
Helper class to include binary data inside XML strings using "Base64 encoding".
The "XMLParserBase64Tool" class allows you to include any binary data (images, sounds,...) into an XML document using "Base64 encoding". This class is completely separated from the rest of the xmlParser library and can be removed without any problem. To include some binary data into an XML file, you must convert the binary data into standard text (using "encode"). To retrieve the original binary data from the b64-encoded text included inside the XML file, use "decode". Alternatively, these functions can also be used to "encrypt/decrypt" some critical data contained inside the XML (it's not a strong encryption at all, but sometimes it can be useful).
Definition at line 1060 of file xmlParser.h.
#include <xmlparser/xmlParser.h>
Public Member Functions | |
XMLParserBase64Tool ()=default | |
~XMLParserBase64Tool () | |
void | freeBuffer () |
Call this function when you have finished using. More... | |
XMLSTR | encode (unsigned char *inByteBuf, unsigned int inByteLen, char formatted=0) |
length of the base64 string that encodes a data buffer of size inBufLen bytes. More... | |
unsigned char * | decode (XMLCSTR inString, int *outByteLen=nullptr, XMLError *xe=nullptr) |
The "decode" function returns a pointer to a buffer containing the binary data decoded from "inString" The output buffer will be free'd when the XMLParserBase64Tool object is deleted. More... | |
Static Public Member Functions | |
static int | encodeLength (int inBufLen, char formatted=0) |
this object to release memory used by the internal buffer. More... | |
static unsigned int | decodeSize (XMLCSTR inString, XMLError *xe=nullptr) |
containing the base64 string containing the binary data encoded from "inByteBuf" More... | |
static unsigned char | decode (XMLCSTR inString, unsigned char *outByteBuf, int inMaxByteOutBuflen, XMLError *xe=nullptr) |
containing the binary data decoded from "inString" More... | |
Private Member Functions | |
void | alloc (int newsize) |
Private Attributes | |
void * | buf {nullptr} |
int | buflen {0} |
|
default |
XMLParserBase64Tool::~XMLParserBase64Tool | ( | ) |
Definition at line 3668 of file xmlParser.cpp.
References freeBuffer().
|
private |
unsigned char * XMLParserBase64Tool::decode | ( | XMLCSTR | inString, |
int * | outByteLen = nullptr , |
||
XMLError * | xe = nullptr |
||
) |
The "decode" function returns a pointer to a buffer containing the binary data decoded from "inString" The output buffer will be free'd when the XMLParserBase64Tool object is deleted.
All output buffer are sharing the same memory space.
inString | If "instring" is malformed, nullptr will be returned returns a pointer to an internal buffer |
Definition at line 3884 of file xmlParser.cpp.
References alloc(), buf, decodeSize(), and eXMLErrorNone.
|
static |
containing the binary data decoded from "inString"
decodes data from "inString" to "outByteBuf". You need to provide the size (in byte) of "outByteBuf" in "inMaxByteOutBuflen". If "outByteBuf" is not large enough or if data is malformed, then "FALSE" will be returned; otherwise "TRUE". deprecated.
Definition at line 3766 of file xmlParser.cpp.
References BASE64DECODE_READ_NEXT_CHAR, buf, eXMLErrorBase64DecodeBufferTooSmall, eXMLErrorBase64DecodeTruncatedData, and eXMLErrorNone.
containing the base64 string containing the binary data encoded from "inByteBuf"
returns the number of bytes which will be decoded from "inString".
Definition at line 3730 of file xmlParser.cpp.
References base64DecodeTable, base64Fillchar, eXMLErrorBase64DataSizeIsNotMultipleOf4, eXMLErrorBase64DecodeIllegalCharacter, and eXMLErrorNone.
Referenced by decode().
XMLSTR XMLParserBase64Tool::encode | ( | unsigned char * | inByteBuf, |
unsigned int | inByteLen, | ||
char | formatted = 0 |
||
) |
length of the base64 string that encodes a data buffer of size inBufLen bytes.
The "base64Encode" function returns a string containing the base64 encoding of "inByteLen" bytes from "inByteBuf". If "formatted" parameter is true, then there will be a carriage-return every 72 chars. The string will be free'd when the XMLParserBase64Tool object is deleted. All returned strings are sharing the same memory space. returns a pointer to an internal buffer
Definition at line 3683 of file xmlParser.cpp.
References _CXML, alloc(), base64EncodeTable, base64Fillchar, buf, encodeLength(), XMLCHAR, and XMLSTR.
|
static |
this object to release memory used by the internal buffer.
formatted | If "formatted"=true, some space will be reserved for a carriage-return every 72 chars. return the |
Definition at line 3676 of file xmlParser.cpp.
Referenced by encode().
void XMLParserBase64Tool::freeBuffer | ( | ) |
Call this function when you have finished using.
Definition at line 3669 of file xmlParser.cpp.
Referenced by ~XMLParserBase64Tool().
|
private |
Definition at line 1121 of file xmlParser.h.
Referenced by alloc(), decode(), encode(), and freeBuffer().
|
private |
Definition at line 1122 of file xmlParser.h.
Referenced by alloc(), and freeBuffer().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019 |