83 lines
2.5 KiB
C++
83 lines
2.5 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#ifndef __NASCIIENC__
|
|
#define __NASCIIENC__
|
|
|
|
|
|
#include "ntypes.h"
|
|
|
|
|
|
/*!
|
|
@short ASCII encoding.
|
|
|
|
This class currently provide two commonly used encoding method:
|
|
yEnc and UUEncode.
|
|
|
|
@author Emmanuel Julien (ejulien@gsworks.fr)
|
|
*/
|
|
namespace nAsciiEncoder
|
|
{
|
|
/*!
|
|
@short Perform UUEncoding.
|
|
|
|
@param source Input binary stream.
|
|
@param len Input binary stream length.
|
|
@param uuenc Output buffer.
|
|
@param max Output buffer length.
|
|
@return The number of bytes written to the output buffer.
|
|
|
|
@note If yenc is NULL the function can be used to check the size
|
|
of the encoded stream prior to allocating an output buffer.
|
|
*/
|
|
uint UUEncode(const uchar *source, size_t len, uchar *uuenc = 0, size_t max = 0);
|
|
|
|
/*!
|
|
@short Perform UUDecoding.
|
|
|
|
@param source UUEncoded byte stream.
|
|
@param len UUEncoded byte stream length.
|
|
@param bin Output buffer.
|
|
@param max Output buffer length.
|
|
@return The number of bytes written to the output buffer.
|
|
|
|
@note If bin is NULL the function can be used to check the size
|
|
of the decoded stream prior to allocating an output buffer.
|
|
*/
|
|
uint UUDecode(const uchar *source, size_t len, uchar *bin = 0, size_t max = 0);
|
|
/*!
|
|
@short Perform yEncoding.
|
|
|
|
@param source Input binary stream.
|
|
@param len Input binary stream length.
|
|
@param yenc Output buffer.
|
|
@param max Output buffer length.
|
|
@param line_len Number of character to output before a line-feed character is sent.
|
|
@return The number of bytes written to the output buffer.
|
|
|
|
@note If yenc is NULL the function can be used to check the size
|
|
of the encoded stream prior to allocating an output buffer.
|
|
*/
|
|
uint yEncode(const uchar *source, size_t len, uchar *yenc = 0, size_t max = 0, uint line_len = 64);
|
|
|
|
/*!
|
|
@short Perform yDecoding.
|
|
|
|
@param source yEncoded byte stream.
|
|
@param len yEncoded byte stream length.
|
|
@param bin Output buffer.
|
|
@param max Output buffer length.
|
|
@return The number of bytes written to the output buffer.
|
|
|
|
@note If bin is NULL the function can be used to check the size
|
|
of the decoded stream prior to allocating an output buffer.
|
|
*/
|
|
uint yDecode(const uchar *source, size_t len, uchar *bin = 0, size_t max = 0);
|
|
};
|
|
|
|
|
|
#endif // __NASCIIENC__
|