aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cmake
diff options
context:
space:
mode:
authorGravatar Michael Lenaghan <michaell@dazzit.com>2014-10-24 17:56:49 -0400
committerGravatar Michael Lenaghan <michaell@dazzit.com>2014-10-24 20:33:20 -0400
commitec1da36eaf2adfb5695f5c0d8ca92d23d31b56a5 (patch)
tree3c57763f4b3fe597a0d28f70d3634b36542dc663 /src/cmake
parentd0b53a64bdbeaa71d80210640534abea1a85f8d2 (diff)
Add an operation to fetch a parsed message.
This avoids the copying of Data to NSData to Data which happens with the current approach. In one test case, a message with an ~18 MB attachment, the current (copying) approach peaked at ~150 MB of memory usage in my app. This new approach peaks at ~65 MB. Another test case, which often caused iOS to terminate my app, now peaks at ~90 MB. In addition to the improved memory usage this approach also means that message parsing is performed asynchronously.
Diffstat (limited to 'src/cmake')
-rw-r--r--src/cmake/async.cmake1
-rw-r--r--src/cmake/objc.cmake3
-rw-r--r--src/cmake/public-headers.cmake2
3 files changed, 5 insertions, 1 deletions
diff --git a/src/cmake/async.cmake b/src/cmake/async.cmake
index 58f410d4..947a69ee 100644
--- a/src/cmake/async.cmake
+++ b/src/cmake/async.cmake
@@ -13,6 +13,7 @@ set(async_imap_files
async/imap/MCIMAPDisconnectOperation.cc
async/imap/MCIMAPExpungeOperation.cc
async/imap/MCIMAPFetchContentOperation.cc
+ async/imap/MCIMAPFetchParsedContentOperation.cc
async/imap/MCIMAPFetchFoldersOperation.cc
async/imap/MCIMAPFetchMessagesOperation.cc
async/imap/MCIMAPFetchNamespaceOperation.cc
diff --git a/src/cmake/objc.cmake b/src/cmake/objc.cmake
index de4d8d06..cdf09dd6 100644
--- a/src/cmake/objc.cmake
+++ b/src/cmake/objc.cmake
@@ -16,6 +16,7 @@ set(objc_imap_files
objc/imap/MCOIMAPCapabilityOperation.mm
objc/imap/MCOIMAPCopyMessagesOperation.mm
objc/imap/MCOIMAPFetchContentOperation.mm
+ objc/imap/MCOIMAPFetchParsedContentOperation.mm
objc/imap/MCOIMAPFetchFoldersOperation.mm
objc/imap/MCOIMAPFetchMessagesOperation.mm
objc/imap/MCOIMAPFetchNamespaceOperation.mm
@@ -84,7 +85,7 @@ set(objc_nntp_files
objc/nntp/MCONNTPFetchOverviewOperation.mm
objc/nntp/MCONNTPFetchServerTimeOperation.mm
objc/nntp/MCONNTPOperation.mm
- objc/nntp/MCONNTPSession.mm
+ objc/nntp/MCONNTPSession.mm
)
set(objc_utils_files
diff --git a/src/cmake/public-headers.cmake b/src/cmake/public-headers.cmake
index 8b55c15e..65be3be7 100644
--- a/src/cmake/public-headers.cmake
+++ b/src/cmake/public-headers.cmake
@@ -86,6 +86,7 @@ async/imap/MCIMAPAppendMessageOperation.h
async/imap/MCIMAPCopyMessagesOperation.h
async/imap/MCIMAPFetchMessagesOperation.h
async/imap/MCIMAPFetchContentOperation.h
+async/imap/MCIMAPFetchParsedContentOperation.h
async/imap/MCIMAPIdleOperation.h
async/imap/MCIMAPFolderInfoOperation.h
async/imap/MCIMAPFolderStatusOperation.h
@@ -160,6 +161,7 @@ objc/imap/MCOIMAPAppendMessageOperation.h
objc/imap/MCOIMAPCopyMessagesOperation.h
objc/imap/MCOIMAPFetchMessagesOperation.h
objc/imap/MCOIMAPFetchContentOperation.h
+objc/imap/MCOIMAPFetchParsedContentOperation.h
objc/imap/MCOIMAPSearchOperation.h
objc/imap/MCOIMAPIdleOperation.h
objc/imap/MCOIMAPFetchNamespaceOperation.h