Code Search for Developers
 
 
  

IMAPRegexParser.h from AlphaMail at Krugle


Show IMAPRegexParser.h syntax highlighted

#ifndef IMAP_REGEX_PARSER
#define IMAP_REGEX_PARSER

#ifdef CWDEBUG
#include "sys.h"
#include "debug.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <string>
#include <map>
#include <iostream>
#include <exception>
#include <sstream>

#include <IMAPTypes.h>
#include <IMAPParser.h>

namespace IMAP 
{
   /**
    * @see IMAP::IMAPParser for documentation.
    */
   class IMAPRegexParser : public IMAPParser, private boost::noncopyable
   {
      public:
         IMAPRegexParser() : mmap(NULL), nexists(0), nrecent(0), 
                             uidvalidity(0) {}
         ~IMAPRegexParser() {}

         ParsingState parseAttributeFetch(std::iostream &i, MessageMap *mm, 
               ThreadLevelMap *thread_levels, const UIDList &wanted);

         ParsingState parseMailboxThreads(std::iostream &i, 
               ThreadLevelMap *thread_levels, UIDList *uidlist);

         ParsingState parseSorting(std::iostream &i, const char *key, 
               UIDList *mlist);

         ParsingState processLogin(std::iostream &i, 
               const std::string &user, const std::string &password, 
               const std::string &folder);

         ParsingState parseUnseen(std::iostream &i, 
               UIDList *unseenMessages);

         ParsingState parseFolderList(std::iostream &i, 
               const std::string &base, FolderList *list, bool all = true);

         ParsingState parseSubscribe(std::iostream &i, 
                                     const std::string &folder,
                                     bool add = true);

         ParsingState parseMessageFetch(std::iostream &i, IMAP::IMAPUID uid, 
               std::ostream &stream);

         ParsingState parseMessageAppend(std::iostream &imap, 
               const std::string &folder, int size, std::istream &source);

         ParsingState parseNOOP(std::iostream &i);

         ParsingState parseFlagChange(std::iostream &i, const char *flag, 
               IMAPUID uidv, IMAPUID uid, bool set);

         ParsingState parseExpunge(std::iostream &i);

         ParsingState parseCopy(std::iostream &i, IMAPUID uidv, IMAPUID uid, 
               const char *destfolder);
         ParsingState parseDeleteFolder(std::iostream &i, const char *folder);

         ParsingState parseRenameFolder(std::iostream &i, const char *folder, 
               const char *destfolder);

         ParsingState parseCreateFolder(std::iostream &i, const char *folder);

         int getExistsCount() { return nexists; }

         int getRecentCount() { return nrecent; }

         IMAP::IMAPUID getUIDValidity() { return uidvalidity; }

      private:
         void parse_message_headers(std::string &headers, IMAP::IMAPUID uid);
         bool IMAP::IMAPRegexParser::process_async_update(
               const std::string &line);
         void absorb_response(std::iostream &i);
         void get_response_line(std::iostream &i, std::string &line);

         // Gets next line, checks/absorbs universal untagged responses, 
         // updates state. Returns true if there is more to parse, false
         // otherwise.
         bool nextLine(std::iostream &i, IMAPParser::ParsingState &state, 
               std::string &line);

         MessageMap *mmap;
         u_int32_t nexists;
         u_int32_t nrecent;
         IMAP::IMAPUID uidvalidity;
   };
};
#endif




See more files for this project here

AlphaMail

AlphaMail is an accelerated web mail interface with a C++ middleware layer that is more effective than an IMAP proxy which is a highly scalable (10k+ users). The interface includes modern features, Section 508 compliance, and universal browser support.

Project homepage: http://sourceforge.net/projects/alphamail
Programming language(s): C++,Java,JavaScript,Perl
License: other

  CacheManager.h
  IMAPFolder.h
  IMAPParser.h
  IMAPParserFactory.h
  IMAPRegexParser.h
  IMAPTypes.h
  MessageAttributes.h
  RequestProcessor.h
  Runnable.h
  ThreadCleanup.h
  imap_debug.h
  middleware.h