diff options
Diffstat (limited to 'src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp')
-rw-r--r-- | src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp index 7a99a578..16da4df2 100644 --- a/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp @@ -3,6 +3,7 @@ #include "MCBaseTypes.h" #include "JavaHandle.h" #include "TypesUtils.h" +#include "JavaIMAPOperationCallback.h" #include "MCIMAPAppendMessageOperation.h" using namespace mailcore; @@ -36,4 +37,30 @@ JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_createdU return result; } +JNIEXPORT void JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_finalizeNative + (JNIEnv * env, jobject obj) +{ + MC_POOL_BEGIN; + JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); + MC_SAFE_RELEASE(callback); + MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); + MC_POOL_END; +} + +JNIEXPORT void JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_setupNativeOperationProgressListener + (JNIEnv * env, jobject obj) +{ + MC_POOL_BEGIN; + JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); + MC_SAFE_RELEASE(callback); + MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); + + jobject javaListener = getObjectField(env, obj, "listener"); + if (javaListener != NULL) { + callback = new JavaIMAPOperationCallback(env, javaListener); + MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback); + } + MC_POOL_END; +} + MC_JAVA_BRIDGE |