diff options
author | 2013-07-07 21:20:46 -0400 | |
---|---|---|
committer | 2013-07-07 21:20:46 -0400 | |
commit | dc6c77f2452637b62a79f08208989eec7d0ea758 (patch) | |
tree | bc8ef69f267088406411156ecedd15ec47cbc681 /src/async/imap | |
parent | ff02bb072177705d888207920e4ca084792a9bb6 (diff) |
WIP: Objective-C bridge of IMAP rendering methods.
Diffstat (limited to 'src/async/imap')
-rw-r--r-- | src/async/imap/MCIMAPAsyncConnection.cc | 13 | ||||
-rw-r--r-- | src/async/imap/MCIMAPAsyncConnection.h | 5 | ||||
-rw-r--r-- | src/async/imap/MCIMAPAsyncSession.cc | 8 | ||||
-rw-r--r-- | src/async/imap/MCIMAPAsyncSession.h | 5 | ||||
-rw-r--r-- | src/async/imap/MCIMAPMessageRenderingOperation.cc | 10 | ||||
-rw-r--r-- | src/async/imap/MCIMAPMessageRenderingOperation.h | 8 |
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 { |