aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async
diff options
context:
space:
mode:
Diffstat (limited to 'src/async')
-rwxr-xr-x[-rw-r--r--]src/async/imap/MCAsyncIMAP.h1
-rwxr-xr-x[-rw-r--r--]src/async/imap/MCIMAPAsyncConnection.cc9
-rwxr-xr-x[-rw-r--r--]src/async/imap/MCIMAPAsyncConnection.h2
-rwxr-xr-x[-rw-r--r--]src/async/imap/MCIMAPAsyncSession.cc6
-rwxr-xr-x[-rw-r--r--]src/async/imap/MCIMAPAsyncSession.h2
-rw-r--r--src/async/imap/MCIMAPGetQuotaOperation.cc42
-rw-r--r--src/async/imap/MCIMAPGetQuotaOperation.h39
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