summaryrefslogtreecommitdiffstats
path: root/mimelib/mimelib/uuencode.h
diff options
context:
space:
mode:
Diffstat (limited to 'mimelib/mimelib/uuencode.h')
-rw-r--r--mimelib/mimelib/uuencode.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/mimelib/mimelib/uuencode.h b/mimelib/mimelib/uuencode.h
new file mode 100644
index 00000000..c87efbda
--- /dev/null
+++ b/mimelib/mimelib/uuencode.h
@@ -0,0 +1,122 @@
+//=============================================================================
+// 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