BARANTMail/IMAPServer.h
2022-07-08 19:30:00 -07:00

93 lines
2.9 KiB
C++

#ifndef __IMAPServer_h__
# define __IMAPServer_h__
# include "TCPServer.h"
# include "Exception.h"
# include "MailFileSystem.h"
# include "__IMAP_APPEND.h"
# include "__IMAP_AUTHENTICATE.h"
# include "__IMAP_CHECK.h"
# include "__IMAP_CLOSE.h"
# include "__IMAP_COPY.h"
# include "__IMAP_CREATE.h"
# include "__IMAP_DELETE.h"
# include "__IMAP_EXAMINE.h"
# include "__IMAP_EXPUNGE.h"
# include "__IMAP_FETCH.h"
# include "__IMAP_LIST.h"
# include "__IMAP_LOGIN.h"
# include "__IMAP_LSUB.h"
# include "__IMAP_RENAME.h"
# include "__IMAP_SEARCH.h"
# include "__IMAP_SELECT.h"
# include "__IMAP_STARTTLS.h"
# include "__IMAP_STATUS.h"
# include "__IMAP_STORE.h"
# include "__IMAP_SUBSCRIBE.h"
# include "__IMAP_UID.h"
# include "__IMAP_UNSUBSCRIBE.h"
namespace mail {
class IMAPServer : public core::TCPServer {
public:
IMAPServer(core::EPoll &epoll, std::string hostName, MailFileSystem &mailFileSystem, core::IPAddress ipAddress)
: TCPServer(epoll, ipAddress, " ", 10, "IMAP Server"), mailFileSystem(mailFileSystem), hostName(hostName) {
commands.add(_imap_append, "APPEND");
commands.add(_imap_authenticate, "AUTHENTCATE");
commands.add(_imap_check, "CHECK");
commands.add(_imap_close, "CLOSE");
commands.add(_imap_copy, "COPY");
commands.add(_imap_create, "CREATE");
commands.add(_imap_delete, "DELETE");
commands.add(_imap_examine, "EXAAMINE");
commands.add(_imap_expunge, "EXPUNGE");
commands.add(_imap_fetch, "FETCH");
commands.add(_imap_list, "LIST");
commands.add(_imap_login, "LOGIN");
commands.add(_imap_lsub, "LSUB");
commands.add(_imap_rename, "RENAME");
commands.add(_imap_search, "SEARCH");
commands.add(_imap_select, "SELECT");
commands.add(_imap_starttls, "STARTTLS");
commands.add(_imap_status, "STATUS");
commands.add(_imap_store, "STORE");
commands.add(_imap_subscribe, "SUBSCRIBE");
commands.add(_imap_uid, "UID");
commands.add(_imap_unsubscribe, "UNSUBSCRIBE");
}
MailFileSystem &mailFileSystem;
std::string hostName;
private:
__IMAP_APPEND _imap_append;
__IMAP_AUTHENTICATE _imap_authenticate;
__IMAP_CHECK _imap_check;
__IMAP_CLOSE _imap_close;
__IMAP_COPY _imap_copy;
__IMAP_CREATE _imap_create;
__IMAP_DELETE _imap_delete;
__IMAP_EXAMINE _imap_examine;
__IMAP_EXPUNGE _imap_expunge;
__IMAP_FETCH _imap_fetch;
__IMAP_LIST _imap_list;
__IMAP_LOGIN _imap_login;
__IMAP_LSUB _imap_lsub;
__IMAP_RENAME _imap_rename;
__IMAP_SEARCH _imap_search;
__IMAP_SELECT _imap_select;
__IMAP_STARTTLS _imap_starttls;
__IMAP_STATUS _imap_status;
__IMAP_STORE _imap_store;
__IMAP_SUBSCRIBE _imap_subscribe;
__IMAP_UID _imap_uid;
__IMAP_UNSUBSCRIBE _imap_unsubscribe;
};
}
#endif