diff options
Diffstat (limited to 'libmail/smapfetchattr.H')
| -rw-r--r-- | libmail/smapfetchattr.H | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/libmail/smapfetchattr.H b/libmail/smapfetchattr.H new file mode 100644 index 0000000..89ca22d --- /dev/null +++ b/libmail/smapfetchattr.H @@ -0,0 +1,83 @@ +/* +** Copyright 2003, Double Precision Inc. +** +** See COPYING for distribution information. +*/ +#ifndef libmail_smapfetchattr_H +#define libmail_smapfetchattr_H + +#include "libmail_config.h" +#include "mail.H" +#include "smap.H" +#include "envelope.H" +#include "structure.H" + +#include "smapmsgrange.H" + +LIBMAIL_START + +class smapFETCHATTR : public smapHandler { + + const char *getName(); + + smapUidSet uidSet; + smapMsgRange fetchList; + mail::account::MessageAttributes attributes; + mail::callback::message &msgcallback; + + size_t nextPtr; + +public: + smapFETCHATTR(const std::vector<size_t> &messages, + mail::account::MessageAttributes attributesArg, + mail::callback::message &callbackArg, + mail::imap &imapAccount); + ~smapFETCHATTR(); + + void installed(imap &); + bool ok(std::string); + + bool go(); + +private: + void fetchedMessageSize(size_t msgNum, + unsigned long bytes); + + void fetchedInternalDate(size_t msgNum, + time_t internalDate); + + void beginProcessData(imap &imapAccount, + std::vector<const char *> &words, + unsigned long estimatedSize); + void processData(imap &imapAccount, + std::string data); + void endData(imap &imapAccount); + + std::string fetchingHeader; + size_t fetchingMessageNum; + bool doFetchingEnvelope; + bool seenMimeVersion; + + mail::mimestruct *doFetchingStructure; + size_t fetchingStructCount; + + mail::envelope fetchingEnvelope; + mail::mimestruct fetchingStructure; + + void processFetchedHeader(std::string); + + void checkMimeVersion(); + + static mail::mimestruct *findMimeId(mail::mimestruct *p, + std::string mimeid, + size_t recursionLevel); + + static void parseMimeHeader(std::string, + std::string &, + mail::mimestruct::parameterList &); + +}; + +LIBMAIL_END + +#endif |
