#ifndef __MailFileSystem_h__ # define __MailFileSystem_h__ # include # include # include # include "INotify.h" # include "ZString.h" namespace mail { class MailFileSystem { public: MailFileSystem(std::string mailPath) : mailPath(mailPath) {} bool ifMailBoxExists(std::string mailbox) { if(stat(getMailBoxPath(mailbox).c_str(), &statbuf) != -1) if(S_ISDIR(statbuf.st_mode)) return true; return false; } bool ifAliasExists(std::string alias) { if(stat(getMailBoxPath(alias).c_str(), &statbuf) != -1) if(S_ISREG(statbuf.st_mode)) return true; return false; } std::string getMailBoxPath(std::string mailbox) { coreutils::ZString email(mailbox); email.split("@"); std::string path = mailPath + "/" + email[1].str() + "/" + email[0].str(); return path; } std::vector getAliasMailboxes(std::string alias); std::string getMailPath() { return mailPath; } private: std::string mailPath; struct stat statbuf; }; } #endif