aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap
diff options
context:
space:
mode:
authorGravatar Paul Young <paulyoungonline@gmail.com>2013-07-07 21:20:46 -0400
committerGravatar Paul Young <paulyoungonline@gmail.com>2013-07-07 21:20:46 -0400
commitdc6c77f2452637b62a79f08208989eec7d0ea758 (patch)
treebc8ef69f267088406411156ecedd15ec47cbc681 /src/async/imap
parentff02bb072177705d888207920e4ca084792a9bb6 (diff)
WIP: Objective-C bridge of IMAP rendering methods.
Diffstat (limited to 'src/async/imap')
-rw-r--r--src/async/imap/MCIMAPAsyncConnection.cc13
-rw-r--r--src/async/imap/MCIMAPAsyncConnection.h5
-rw-r--r--src/async/imap/MCIMAPAsyncSession.cc8
-rw-r--r--src/async/imap/MCIMAPAsyncSession.h5
-rw-r--r--src/async/imap/MCIMAPMessageRenderingOperation.cc10
-rw-r--r--src/async/imap/MCIMAPMessageRenderingOperation.h8
6 files changed, 40 insertions, 9 deletions
diff --git a/src/async/imap/MCIMAPAsyncConnection.cc b/src/async/imap/MCIMAPAsyncConnection.cc
index 1d07f79a..ac1f61cc 100644
--- a/src/async/imap/MCIMAPAsyncConnection.cc
+++ b/src/async/imap/MCIMAPAsyncConnection.cc
@@ -34,6 +34,7 @@
#include "MCIMAPDisconnectOperation.h"
#include "MCIMAPAsyncSession.h"
#include "MCConnectionLogger.h"
+#include "MCIMAPMessageRenderingOperation.h"
using namespace mailcore;
@@ -592,3 +593,15 @@ void IMAPAsyncConnection::logConnection(ConnectionLogType logType, Data * buffer
}
pthread_mutex_unlock(&mConnectionLoggerLock);
}
+
+IMAPMessageRenderingOperation * IMAPAsyncConnection::renderingOperation(IMAPMessage * message,
+ String * folder,
+ IMAPMessageRenderingType type)
+{
+ IMAPMessageRenderingOperation * op = new IMAPMessageRenderingOperation();
+ op->setSession(this);
+ op->setFolder(folder);
+ op->setRenderingType(type);
+ op->autorelease();
+ return op;
+}
diff --git a/src/async/imap/MCIMAPAsyncConnection.h b/src/async/imap/MCIMAPAsyncConnection.h
index 319cc224..39a82501 100644
--- a/src/async/imap/MCIMAPAsyncConnection.h
+++ b/src/async/imap/MCIMAPAsyncConnection.h
@@ -28,6 +28,7 @@ namespace mailcore {
class IMAPOperationQueueCallback;
class IMAPAsyncSession;
class IMAPConnectionLogger;
+ class IMAPMessageRenderingOperation;
class IMAPAsyncConnection : public Object {
public:
@@ -119,6 +120,10 @@ namespace mailcore {
virtual IMAPCapabilityOperation * capabilityOperation();
+ virtual IMAPMessageRenderingOperation * renderingOperation(IMAPMessage * message,
+ String * folder,
+ IMAPMessageRenderingType type);
+
private:
IMAPSession * mSession;
OperationQueue * mQueue;
diff --git a/src/async/imap/MCIMAPAsyncSession.cc b/src/async/imap/MCIMAPAsyncSession.cc
index cb34bad9..ce3399b4 100644
--- a/src/async/imap/MCIMAPAsyncSession.cc
+++ b/src/async/imap/MCIMAPAsyncSession.cc
@@ -462,3 +462,11 @@ ConnectionLogger * IMAPAsyncSession::connectionLogger()
{
return mConnectionLogger;
}
+
+IMAPMessageRenderingOperation * IMAPAsyncSession::renderingOperation(IMAPMessage * message,
+ String * folder,
+ IMAPMessageRenderingType type);
+{
+ IMAPAsyncConnection * session = sessionForFolder(folder);
+ return session->renderingOperation(message, folder, type);
+}
diff --git a/src/async/imap/MCIMAPAsyncSession.h b/src/async/imap/MCIMAPAsyncSession.h
index ae1bbb90..eac4b582 100644
--- 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 IMAPMessageRenderingOperation;
class IMAPAsyncSession : public Object {
public:
@@ -132,6 +133,10 @@ namespace mailcore {
virtual IMAPOperation * checkAccountOperation();
virtual IMAPCapabilityOperation * capabilityOperation();
+
+ virtual IMAPMessageRenderingOperation * renderingOperation(IMAPMessage * message,
+ String * folder,
+ IMAPMessageRenderingType type);
private:
Array * mSessions;
diff --git a/src/async/imap/MCIMAPMessageRenderingOperation.cc b/src/async/imap/MCIMAPMessageRenderingOperation.cc
index 82faa589..4129e617 100644
--- a/src/async/imap/MCIMAPMessageRenderingOperation.cc
+++ b/src/async/imap/MCIMAPMessageRenderingOperation.cc
@@ -16,7 +16,7 @@ using namespace mailcore;
IMAPMessageRenderingOperation::IMAPMessageRenderingOperation()
{
mMessage = NULL;
- mRenderingType = RenderingTypePlainTextBody;
+ mRenderingType = IMAPMessageRenderingTypePlainTextBody;
mResult = NULL;
}
@@ -55,16 +55,16 @@ void IMAPMessageRenderingOperation::main()
{
ErrorCode error;
- if (mRenderingType == RenderingTypeHTML) {
+ if (mRenderingType == IMAPMessageRenderingTypeHTML) {
mResult = session()->session()->htmlRendering(mMessage, folder(), &error);
}
- else if (mRenderingType == RenderingTypeHTMLBody) {
+ else if (mRenderingType == IMAPMessageRenderingTypeHTMLBody) {
mResult = session()->session()->htmlBodyRendering(mMessage, folder(), &error);
}
- else if (mRenderingType == RenderingTypePlainText) {
+ else if (mRenderingType == IMAPMessageRenderingTypePlainText) {
mResult = session()->session()->plainTextRendering(mMessage, folder(), &error);
}
- else if (mRenderingType == RenderingTypePlainTextBody) {
+ else if (mRenderingType == IMAPMessageRenderingTypePlainTextBody) {
mResult = session()->session()->plainTextBodyRendering(mMessage, folder(), &error);
}
diff --git a/src/async/imap/MCIMAPMessageRenderingOperation.h b/src/async/imap/MCIMAPMessageRenderingOperation.h
index b9634ee6..dc6302d8 100644
--- a/src/async/imap/MCIMAPMessageRenderingOperation.h
+++ b/src/async/imap/MCIMAPMessageRenderingOperation.h
@@ -19,10 +19,10 @@ namespace mailcore {
// If this type becomes public it must be moved to MCConstants.h
typedef enum {
- RenderingTypeHTML,
- RenderingTypeHTMLBody,
- RenderingTypePlainText,
- RenderingTypePlainTextBody
+ IMAPMessageRenderingTypeHTML,
+ IMAPMessageRenderingTypeHTMLBody,
+ IMAPMessageRenderingTypePlainText,
+ IMAPMessageRenderingTypePlainTextBody
} IMAPMessageRenderingType;
class IMAPMessageRenderingOperation : public IMAPOperation {