diff options
Diffstat (limited to 'libmail/smapfetch.H')
| -rw-r--r-- | libmail/smapfetch.H | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libmail/smapfetch.H b/libmail/smapfetch.H new file mode 100644 index 0000000..1c86074 --- /dev/null +++ b/libmail/smapfetch.H @@ -0,0 +1,62 @@ +/* +** Copyright 2003, Double Precision Inc. +** +** See COPYING for distribution information. +*/ +#ifndef libmail_smapfetch_H +#define libmail_smapfetch_H + +#include "libmail_config.h" +#include "mail.H" +#include "smap.H" + +#include "smapmsgrange.H" + +LIBMAIL_START + +class smapFETCH : public smapHandler { + + const char *getName(); + + smapUidSet uidSet; + smapMsgRange msgRange; + + std::string fetchCmd; + size_t fetchingMessageNum; + + mail::callback::message &msgcallback; + + size_t expectedCount; + size_t countProcessed; + + unsigned long estimatedSize; + unsigned long sizeDone; + +public: + smapFETCH(const std::vector<size_t> &messages, + bool peekArg, + std::string mime_idArg, + mail::readMode getType, + const char *decodedArg, + mail::callback::message &msgcallbackArg, + mail::imap &imapAccount); + ~smapFETCH(); + + void installed(imap &); + bool ok(std::string); + + bool go(); + +private: + void beginProcessData(imap &imapAccount, + std::vector<const char *> &words, + unsigned long estimatedSize); + void processData(imap &imapAccount, + std::string data); + void endData(imap &imapAccount); + +}; + +LIBMAIL_END + +#endif |
