diff options
Diffstat (limited to 'src/async')
-rwxr-xr-x[-rw-r--r--] | src/async/imap/MCAsyncIMAP.h | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | src/async/imap/MCIMAPAsyncConnection.cc | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | src/async/imap/MCIMAPAsyncConnection.h | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | src/async/imap/MCIMAPAsyncSession.cc | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | src/async/imap/MCIMAPAsyncSession.h | 2 | ||||
-rw-r--r-- | src/async/imap/MCIMAPGetQuotaOperation.cc | 42 | ||||
-rw-r--r-- | src/async/imap/MCIMAPGetQuotaOperation.h | 39 |
7 files changed, 101 insertions, 0 deletions
diff --git a/src/async/imap/MCAsyncIMAP.h b/src/async/imap/MCAsyncIMAP.h index a6bf40d0..511a5cf6 100644..100755 --- a/src/async/imap/MCAsyncIMAP.h +++ b/src/async/imap/MCAsyncIMAP.h @@ -27,6 +27,7 @@ #include <MailCore/MCIMAPFetchNamespaceOperation.h> #include <MailCore/MCIMAPIdentityOperation.h> #include <MailCore/MCIMAPCapabilityOperation.h> +#include <MailCore/MCIMAPGetQuotaOperation.h> #include <MailCore/MCIMAPOperationCallback.h> #include <MailCore/MCIMAPMessageRenderingOperation.h> diff --git a/src/async/imap/MCIMAPAsyncConnection.cc b/src/async/imap/MCIMAPAsyncConnection.cc index 85c411a8..77800bca 100644..100755 --- a/src/async/imap/MCIMAPAsyncConnection.cc +++ b/src/async/imap/MCIMAPAsyncConnection.cc @@ -30,6 +30,7 @@ #include "MCIMAPIdleOperation.h" #include "MCIMAPIdentityOperation.h" #include "MCIMAPCapabilityOperation.h" +#include "MCIMAPGetQuotaOperation.h" #include "MCOperationQueueCallback.h" #include "MCIMAPDisconnectOperation.h" #include "MCIMAPAsyncSession.h" @@ -494,6 +495,14 @@ IMAPCapabilityOperation * IMAPAsyncConnection::capabilityOperation() return op; } +IMAPGetQuotaOperation * IMAPAsyncConnection::getQuotaOperation() +{ + IMAPGetQuotaOperation * op = new IMAPGetQuotaOperation(); + op->setSession(this); + op->autorelease(); + return op; +} + IMAPSession * IMAPAsyncConnection::session() { return mSession; diff --git a/src/async/imap/MCIMAPAsyncConnection.h b/src/async/imap/MCIMAPAsyncConnection.h index 45acb707..8fe025c9 100644..100755 --- a/src/async/imap/MCIMAPAsyncConnection.h +++ b/src/async/imap/MCIMAPAsyncConnection.h @@ -25,6 +25,7 @@ namespace mailcore { class IMAPFetchNamespaceOperation; class IMAPIdentityOperation; class IMAPCapabilityOperation; + class IMAPGetQuotaOperation; class IMAPOperationQueueCallback; class IMAPAsyncSession; class IMAPConnectionLogger; @@ -120,6 +121,7 @@ namespace mailcore { virtual IMAPOperation * checkAccountOperation(); virtual IMAPCapabilityOperation * capabilityOperation(); + virtual IMAPGetQuotaOperation * getQuotaOperation(); virtual IMAPMessageRenderingOperation * htmlRenderingOperation(IMAPMessage * message, String * folder); virtual IMAPMessageRenderingOperation * htmlBodyRenderingOperation(IMAPMessage * message, String * folder); diff --git a/src/async/imap/MCIMAPAsyncSession.cc b/src/async/imap/MCIMAPAsyncSession.cc index 7aa37d83..205b57b2 100644..100755 --- a/src/async/imap/MCIMAPAsyncSession.cc +++ b/src/async/imap/MCIMAPAsyncSession.cc @@ -449,6 +449,12 @@ IMAPCapabilityOperation * IMAPAsyncSession::capabilityOperation() return session->capabilityOperation(); } +IMAPGetQuotaOperation * IMAPAsyncSession::getQuotaOperation() +{ + IMAPAsyncConnection * session = sessionForFolder(MCSTR("INBOX")); + return session->getQuotaOperation(); +} + void IMAPAsyncSession::setConnectionLogger(ConnectionLogger * logger) { mConnectionLogger = logger; diff --git a/src/async/imap/MCIMAPAsyncSession.h b/src/async/imap/MCIMAPAsyncSession.h index 68e8899a..212cdaab 100644..100755 --- a/src/async/imap/MCIMAPAsyncSession.h +++ b/src/async/imap/MCIMAPAsyncSession.h @@ -33,6 +33,7 @@ namespace mailcore { class IMAPIdentityOperation; class IMAPAsyncConnection; class IMAPCapabilityOperation; + class IMAPGetQuotaOperation; class IMAPMessageRenderingOperation; class IMAPMessage; @@ -133,6 +134,7 @@ namespace mailcore { virtual IMAPOperation * checkAccountOperation(); virtual IMAPCapabilityOperation * capabilityOperation(); + virtual IMAPGetQuotaOperation * getQuotaOperation(); virtual IMAPMessageRenderingOperation * htmlRenderingOperation(IMAPMessage * message, String * folder); virtual IMAPMessageRenderingOperation * htmlBodyRenderingOperation(IMAPMessage * message, String * folder); diff --git a/src/async/imap/MCIMAPGetQuotaOperation.cc b/src/async/imap/MCIMAPGetQuotaOperation.cc new file mode 100644 index 00000000..572bd583 --- /dev/null +++ b/src/async/imap/MCIMAPGetQuotaOperation.cc @@ -0,0 +1,42 @@ +// +// MCIMAPGetQuotaOperation.cc +// mailcore2 +// +// Created by Petro Korenev on 8/2/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "MCIMAPGetQuotaOperation.h" + +#include "MCIMAPSession.h" +#include "MCIMAPAsyncConnection.h" + +using namespace mailcore; + +IMAPGetQuotaOperation::IMAPGetQuotaOperation() +{ + mLimit = 0; + mUsage = 0; +} + +IMAPGetQuotaOperation::~IMAPGetQuotaOperation() +{ +} + +uint32_t IMAPGetQuotaOperation::limit() +{ + return mLimit; +} + +uint32_t IMAPGetQuotaOperation::usage() +{ + return mUsage; +} + +void IMAPGetQuotaOperation::main() +{ + ErrorCode error; + session()->session()->getQuota(&mUsage, &mLimit, &error); + fprintf(stderr, "QnIQuESeqUeNcE %d %d", mUsage, mLimit); + setError(error); +} diff --git a/src/async/imap/MCIMAPGetQuotaOperation.h b/src/async/imap/MCIMAPGetQuotaOperation.h new file mode 100644 index 00000000..bea3d2f6 --- /dev/null +++ b/src/async/imap/MCIMAPGetQuotaOperation.h @@ -0,0 +1,39 @@ +// +// MCIMAPGetQuotaOperation.h +// mailcore2 +// +// Created by Petro Korenev on 8/2/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#ifndef __MAILCORE_MCIMAPGETQUOTAOPERATION_H_ + +#define __MAILCORE_MCIMAPGETQUOTAOPERATION_H_ + +#include "MCIMAPOperation.h" + +#ifdef __cplusplus + +namespace mailcore { + + class IMAPGetQuotaOperation : public IMAPOperation { + public: + IMAPGetQuotaOperation(); + virtual ~IMAPGetQuotaOperation(); + + // Result. + virtual uint32_t limit(); + virtual uint32_t usage(); + + public: // subclass behavior + virtual void main(); + + private: + uint32_t mLimit; + uint32_t mUsage; + }; +} + +#endif + +#endif |