diff options
Diffstat (limited to 'ACE/ACEXML/common/XML_Codecs.h')
-rw-r--r-- | ACE/ACEXML/common/XML_Codecs.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/ACE/ACEXML/common/XML_Codecs.h b/ACE/ACEXML/common/XML_Codecs.h new file mode 100644 index 00000000000..10101d4e5b4 --- /dev/null +++ b/ACE/ACEXML/common/XML_Codecs.h @@ -0,0 +1,73 @@ +// -*- C++ -*- + +/** + * @file XML_Codecs.h + * + * $Id$ + * + * @author Krishnakumar B <kitty@cs.wustl.edu> + * + * XML_Codecs is a generic wrapper for various encoding and decoding + * mechanisms used in ACEXML. Currently it includes support for handling + * Base64 content transfer-encoding of ACEXML_Chars. + * + */ + +#ifndef _ACEXML_XML_CODECS_H +#define _ACEXML_XML_CODECS_H + +#include /**/ "ace/pre.h" +#include "ACEXML/common/ACEXML_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ACEXML/common/XML_Types.h" +#include "ace/Codecs.h" + +/** + * @class ACEXML_Base64 + * + * @brief Encode/Decode a stream of ACEXML_Chars according to Base64 encoding. + * + * This class provides methods to encode or decode a stream of ACEXML_Chars + * to/from Base64 encoding. It doesn't convert the input stream to a + * canonical form before encoding. + * + */ +class ACEXML_Export ACEXML_Base64 : public ACE_Base64 +{ +public: + + //@{ + + /** + * Encodes a stream of octets to Base64 data + * + * @param input Binary data in ACEXML_Char stream. + * @param output_len Length of the encoded Base64 ACEXML_Char stream. + * @return Encoded Base64 data in ACEXML_Char stream or NULL if input data + * cannot be encoded. + */ + + static ACEXML_Char* encode (const ACEXML_Char* input, + size_t* output_len); + /** + * Decodes a stream of Base64 to octets data + * + * @param input Encoded Base64 data in ACEXML_Char stream. + * @param output_len Length of the binary ACEXML_Char stream. + * @return Binary data in ACEXML_Char stream or NULL if input data cannot + * be encoded. + */ + static ACEXML_Char* decode (const ACEXML_Char* input, + size_t* output_len); + + //@} +}; + + +#include /**/ "ace/post.h" + +#endif /* _ACEXML_XML_CODECS_H */ |