summaryrefslogtreecommitdiffstats
path: root/libmail/genericdecode.C
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/genericdecode.C')
-rw-r--r--libmail/genericdecode.C50
1 files changed, 50 insertions, 0 deletions
diff --git a/libmail/genericdecode.C b/libmail/genericdecode.C
new file mode 100644
index 0000000..87f4382
--- /dev/null
+++ b/libmail/genericdecode.C
@@ -0,0 +1,50 @@
+/*
+** Copyright 2002, Double Precision Inc.
+**
+** See COPYING for distribution information.
+*/
+#include "libmail_config.h"
+#include "genericdecode.H"
+
+using namespace std;
+
+mail::generic::Decode::Decode(mail::callback::message &callback,
+ string transferEncoding)
+ : mail::autodecoder(transferEncoding),
+ originalCallback(callback)
+{
+}
+
+mail::generic::Decode::~Decode()
+{
+}
+
+void mail::generic::Decode::messageTextCallback(size_t n, string text)
+{
+ messageNum=n; // Save the orig msg number (should never change)
+ decode(text);
+}
+
+void mail::generic::Decode::reportProgress(size_t bc, size_t bt,
+ size_t mc, size_t mt)
+{
+ originalCallback.reportProgress(bc, bt, mc, mt);
+}
+
+void mail::generic::Decode::decoded(string text)
+{
+ originalCallback.messageTextCallback(messageNum, text);
+}
+
+void mail::generic::Decode::fail(string message)
+{
+ originalCallback.fail(message);
+ delete this;
+}
+
+void mail::generic::Decode::success(string message)
+{
+ originalCallback.success(message);
+ delete this;
+}
+