| 3081 | } |
| 3082 | |
| 3083 | void IMAPSession::fetchMessageAttachmentToFileByUID(String * folder, uint32_t uid, String * partID, |
| 3084 | Encoding encoding, String * outputFile, |
| 3085 | IMAPProgressCallback * progressCallback, ErrorCode * pError) |
| 3086 | { |
| 3087 | DataStreamDecoder * decoder = new DataStreamDecoder(); |
| 3088 | decoder->setEncoding(encoding); |
| 3089 | decoder->setFilename(outputFile); |
| 3090 | |
| 3091 | ErrorCode error = ErrorNone; |
| 3092 | selectIfNeeded(folder, &error); |
| 3093 | if (error != ErrorNone) { |
| 3094 | * pError = error; |
| 3095 | return; |
| 3096 | } |
| 3097 | |
| 3098 | mailimap_set_msg_body_handler(mImap, msg_body_handler, decoder); |
| 3099 | |
| 3100 | fetchNonDecodedMessageAttachment(folder, true, uid, partID, true, 0, 0, encoding, progressCallback, &error); |
| 3101 | |
| 3102 | mailimap_set_msg_body_handler(mImap, NULL, NULL); |
| 3103 | |
| 3104 | if (error == ErrorNone) { |
| 3105 | error = decoder->flushData(); |
| 3106 | } |
| 3107 | |
| 3108 | MC_SAFE_RELEASE(decoder); |
| 3109 | |
| 3110 | * pError = error; |
| 3111 | } |
| 3112 | |
| 3113 | IndexSet * IMAPSession::search(String * folder, IMAPSearchKind kind, String * searchString, ErrorCode * pError) |
| 3114 | { |
no test coverage detected