diff options
author | 2013-11-21 17:00:35 -0700 | |
---|---|---|
committer | 2013-11-21 17:00:35 -0700 | |
commit | ce98cb1a45fbb71606b356a33c4e1865e1000369 (patch) | |
tree | 65870a5d15290316ee8ece29796a1bee8e5cd370 /src | |
parent | f48c98af691d3001f1ad272c4d589ec7199cceee (diff) |
Add new search expressions
Diffstat (limited to 'src')
-rw-r--r-- | src/core/abstract/MCMessageConstants.h | 1 | ||||
-rw-r--r-- | src/core/imap/MCIMAPSearchExpression.cc | 38 | ||||
-rw-r--r-- | src/core/imap/MCIMAPSearchExpression.h | 71 |
3 files changed, 77 insertions, 33 deletions
diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h index baac7061..c85d7c5a 100644 --- a/src/core/abstract/MCMessageConstants.h +++ b/src/core/abstract/MCMessageConstants.h @@ -169,6 +169,7 @@ namespace mailcore { IMAPSearchKindContent, IMAPSearchKindHeader, IMAPSearchKindGmailThreadID, + IMAPSearchKindUnread, IMAPSearchKindOr, IMAPSearchKindAnd, }; diff --git a/src/core/imap/MCIMAPSearchExpression.cc b/src/core/imap/MCIMAPSearchExpression.cc index 86111f2e..07e67ea1 100644 --- a/src/core/imap/MCIMAPSearchExpression.cc +++ b/src/core/imap/MCIMAPSearchExpression.cc @@ -124,6 +124,44 @@ IMAPSearchExpression * IMAPSearchExpression::searchHeader(String * header, Strin return (IMAPSearchExpression *) expr->autorelease(); } +IMAPSearchExpression * IMAPSearchExpression::searchRead() +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindRead; + return (IMAPSearchExpression *) expr->autorelease(); +} + +IMAPSearchExpression * IMAPSearchExpression::searchUnread() +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindUnread; + return (IMAPSearchExpression *) expr->autorelease(); +} + +IMAPSearchExpression * IMAPSearchExpression::searchBeforeDate(time_t date) +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindBeforeDate; + expr->mLongNumber = date; + return (IMAPSearchExpression *) expr->autorelease(); +} + +IMAPSearchExpression * IMAPSearchExpression::searchOnDate(time_t date) +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindOnDate; + expr->mLongNumber = date; + return (IMAPSearchExpression *) expr->autorelease(); +} + +IMAPSearchExpression * IMAPSearchExpression::searchSinceDate(time_t date) +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindSinceDate; + expr->mLongNumber = date; + return (IMAPSearchExpression *) expr->autorelease(); +} + IMAPSearchExpression * IMAPSearchExpression::searchGmailThreadID(uint64_t number) { IMAPSearchExpression * expr = new IMAPSearchExpression(); diff --git a/src/core/imap/MCIMAPSearchExpression.h b/src/core/imap/MCIMAPSearchExpression.h index 352336d3..edb5f0fc 100644 --- a/src/core/imap/MCIMAPSearchExpression.h +++ b/src/core/imap/MCIMAPSearchExpression.h @@ -9,43 +9,48 @@ namespace mailcore { - class IMAPSearchExpression : public Object { - public: - IMAPSearchExpression(); - virtual ~IMAPSearchExpression(); - - virtual IMAPSearchKind kind(); - virtual String * header(); - virtual String * value(); - virtual uint64_t longNumber(); - virtual IMAPSearchExpression * leftExpression(); - virtual IMAPSearchExpression * rightExpression(); - - static IMAPSearchExpression * searchAll(); - static IMAPSearchExpression * searchFrom(String * value); - static IMAPSearchExpression * searchRecipient(String * value); - static IMAPSearchExpression * searchSubject(String * value); - static IMAPSearchExpression * searchContent(String * value); - static IMAPSearchExpression * searchHeader(String * header, String * value); - static IMAPSearchExpression * searchGmailThreadID(uint64_t number); - static IMAPSearchExpression * searchAnd(IMAPSearchExpression * left, IMAPSearchExpression * right); - static IMAPSearchExpression * searchOr(IMAPSearchExpression * left, IMAPSearchExpression * right); + class IMAPSearchExpression : public Object { + public: + IMAPSearchExpression(); + virtual ~IMAPSearchExpression(); + + virtual IMAPSearchKind kind(); + virtual String * header(); + virtual String * value(); + virtual uint64_t longNumber(); + virtual IMAPSearchExpression * leftExpression(); + virtual IMAPSearchExpression * rightExpression(); + + static IMAPSearchExpression * searchAll(); + static IMAPSearchExpression * searchFrom(String * value); + static IMAPSearchExpression * searchRecipient(String * value); + static IMAPSearchExpression * searchSubject(String * value); + static IMAPSearchExpression * searchContent(String * value); + static IMAPSearchExpression * searchHeader(String * header, String * value); + static IMAPSearchExpression * searchRead(); + static IMAPSearchExpression * searchUnread(); + static IMAPSearchExpression * searchBeforeDate(time_t date); + static IMAPSearchExpression * searchOnDate(time_t date); + static IMAPSearchExpression * searchSinceDate(time_t date); + static IMAPSearchExpression * searchGmailThreadID(uint64_t number); + static IMAPSearchExpression * searchAnd(IMAPSearchExpression * left, IMAPSearchExpression * right); + static IMAPSearchExpression * searchOr(IMAPSearchExpression * left, IMAPSearchExpression * right); public: // subclass behavior - IMAPSearchExpression(IMAPSearchExpression * other); - virtual String * description(); - virtual Object * copy(); + IMAPSearchExpression(IMAPSearchExpression * other); + virtual String * description(); + virtual Object * copy(); - private: - IMAPSearchKind mKind; - String * mHeader; - String * mValue; + private: + IMAPSearchKind mKind; + String * mHeader; + String * mValue; uint64_t mLongNumber; - IMAPSearchExpression * mLeftExpression; - IMAPSearchExpression * mRightExpression; - void init(); - }; - + IMAPSearchExpression * mLeftExpression; + IMAPSearchExpression * mRightExpression; + void init(); + }; + } #endif |