summaryrefslogtreecommitdiffstats
path: root/libmail/pop3maildrop.H
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/pop3maildrop.H')
-rw-r--r--libmail/pop3maildrop.H61
1 files changed, 61 insertions, 0 deletions
diff --git a/libmail/pop3maildrop.H b/libmail/pop3maildrop.H
new file mode 100644
index 0000000..bbb56cb
--- /dev/null
+++ b/libmail/pop3maildrop.H
@@ -0,0 +1,61 @@
+/*
+** Copyright 2003-2008, Double Precision Inc.
+**
+** See COPYING for distribution information.
+*/
+#ifndef libmail_pop3maildrop_H
+#define libmail_pop3maildrop_H
+
+#include "libmail_config.h"
+#include "mail.H"
+#include "maildir.H"
+
+////////////////////////////////////////////////////////////////////////
+//
+// A POP3 maildrop is subclassed from mail::maildir, so that it looks like
+// a maildir. It maintains a private mail::pop3 object that is used to
+// feed grab mail from a pop3 maildrop, and copy it to the local maildir.
+//
+
+LIBMAIL_START
+
+class pop3maildrop : private callback::disconnect,
+ // Swallow disconnect events from maildir
+
+ public mail::maildir {
+
+ class pop3acct; // Custom POP3 subclass
+
+ pop3acct *myPop3Acct;
+
+ class checkNewMailHelper;
+public:
+
+ friend class CheckNewMailHelper;
+
+ pop3maildrop(mail::callback::disconnect &disconnect_callback,
+ mail::loginCallback *loginCallbackFunc,
+ mail::callback &callback,
+ std::string pathArg,
+ std::string pop3url,
+ std::string pop3pass,
+ std::vector<std::string> &certificates);
+ ~pop3maildrop();
+
+ // Hook into POP3:
+ void logout(callback &callback);
+ void checkNewMail(callback &callback);
+
+ bool hasCapability(std::string capability);
+ std::string getCapability(std::string capability);
+private:
+ // Inherited from callback::disconnect:
+
+ void disconnected(const char *errmsg);
+ void servererror(const char *errmsg);
+
+};
+
+LIBMAIL_END
+
+#endif