aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp')
-rw-r--r--src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp27
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