You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
4.4 KiB
123 lines
4.4 KiB
//=============================================================================
|
|
// File: uuencode.h
|
|
// Contents: Declarations for DwUuencode
|
|
// Maintainer: Doug Sauder <dwsauder@fwb.gulf.net>
|
|
// WWW: http://www.fwb.gulf.net/~dwsauder/mimepp.html
|
|
//
|
|
// Copyright (c) 1996, 1997 Douglas W. Sauder
|
|
// All rights reserved.
|
|
//
|
|
// IN NO EVENT SHALL DOUGLAS W. SAUDER BE LIABLE TO ANY PARTY FOR DIRECT,
|
|
// INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
|
|
// THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF DOUGLAS W. SAUDER
|
|
// HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
//
|
|
// DOUGLAS W. SAUDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT
|
|
// NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
// PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
|
|
// BASIS, AND DOUGLAS W. SAUDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
|
|
// SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef DW_UUENCODE_H
|
|
#define DW_UUENCODE_H
|
|
|
|
#ifndef DW_CONFIG_H
|
|
#include <mimelib/config.h>
|
|
#endif
|
|
|
|
#ifndef DW_STRING_H
|
|
#include <mimelib/string.h>
|
|
#endif
|
|
|
|
//=============================================================================
|
|
//+ Name DwUuencode -- Class for performing uuencode or uudecode operations
|
|
//+ Description
|
|
//. {\tt DwUuencode} performs uuencode or uudecode operations. Uuencode
|
|
//. is a format for encoding binary data into text characters for transmission
|
|
//. through the mail system. The format also includes the file name and the
|
|
//. file mode. (Note: The file mode is significant only in UNIX.) In MIME,
|
|
//. the use of uuencode is deprecated; base64 is the preferred encoding
|
|
//. for sending binary data.
|
|
//.
|
|
//. To use {\tt DwUuencode} for encoding binary data into uuencode format,
|
|
//. set the file name, file mode, and binary data string using the member
|
|
//. functions {\tt SetFileName()}, {\tt SetFileMode()}, and
|
|
//. {\tt SetBinaryChars()}. Then call the member function {\tt Encode()}.
|
|
//. Finally, retrieve the uuencoded text characters by calling
|
|
//. {\tt AsciiChars()}.
|
|
//.
|
|
//. To use {\tt DwUuencode} to decode uuencoded data, set the ASCII characters
|
|
//. using the member function {\tt SetAsciiChars()}, then call {\tt Decode()}.
|
|
//. Finally, retrieve the file name, file mode, and binary characters by
|
|
//. calling {\tt FileName()}, {\tt FileMode()}, and {\tt BinaryChars()}.
|
|
//=============================================================================
|
|
// Last modified 1997-07-29
|
|
//+ Noentry ~DwUuencode mFileName mMode mBinaryChars mAsciiChars
|
|
|
|
|
|
class DW_EXPORT DwUuencode {
|
|
|
|
public:
|
|
|
|
DwUuencode();
|
|
//. This is the default constructor.
|
|
|
|
virtual ~DwUuencode();
|
|
|
|
void Initialize();
|
|
//. Resets the object's internal state to its initial state. Call
|
|
//. this member function to reuse the object for more than one encode
|
|
//. or decode operation.
|
|
|
|
void SetFileName(const char* aName);
|
|
//. Sets the file name to be included in the uuencoded output. The
|
|
//. implementation limits the file name to 255 characters.
|
|
|
|
const char* FileName() const;
|
|
//. Returns the file name extracted while uudecoding. The implementation
|
|
//. limits the file name to 255 characters.
|
|
|
|
void SetFileMode(DwUint16 aMode);
|
|
//. Sets the file mode to be included in the uuencoded output. If
|
|
//. the file mode is not explicitly set using this member function,
|
|
//. a default value of 0644 (octal) is assumed.
|
|
|
|
DwUint16 FileMode() const;
|
|
//. Returns the file mode extracted while uudecoding.
|
|
|
|
void SetBinaryChars(const DwString& aStr);
|
|
//. Sets the string of binary data to be used in the uuencode operation.
|
|
|
|
const DwString& BinaryChars() const;
|
|
//. Returns the string of binary data extracted during a uudecode
|
|
//. operation.
|
|
|
|
void SetAsciiChars(const DwString& aStr);
|
|
//. Sets the string of ASCII characters to used in the decode operation.
|
|
|
|
const DwString& AsciiChars() const;
|
|
//. Returns the string of ASCII characters created during a uuencode
|
|
//. operation.
|
|
|
|
void Encode();
|
|
//. Creates an ASCII string of characters by uuencoding the file name,
|
|
//. file mode, and binary data.
|
|
|
|
int Decode();
|
|
//. Extracts the file name, file mode, and binary data from the ASCII
|
|
//. characters via a uudecode operation.
|
|
|
|
private:
|
|
|
|
char mFileName[256];
|
|
DwUint16 mMode;
|
|
|
|
DwString mBinaryChars;
|
|
DwString mAsciiChars;
|
|
|
|
};
|
|
|
|
#endif
|