aboutsummaryrefslogtreecommitdiffstats
path: root/src/native/addrbook/AddrBookContactQuery.c
diff options
context:
space:
mode:
authorLyubomir Marinov <lyubomir.marinov@jitsi.org>2011-01-07 19:01:32 +0000
committerLyubomir Marinov <lyubomir.marinov@jitsi.org>2011-01-07 19:01:32 +0000
commit72bc56dbb32f2e311a9250ad561c9e3feef2e066 (patch)
treee10b816ef1a405e16caaba09ccc141cb073376e2 /src/native/addrbook/AddrBookContactQuery.c
parent8b919ddfb1de75c72c256aa671203183c5bfc232 (diff)
downloadjitsi-72bc56dbb32f2e311a9250ad561c9e3feef2e066.zip
jitsi-72bc56dbb32f2e311a9250ad561c9e3feef2e066.tar.gz
jitsi-72bc56dbb32f2e311a9250ad561c9e3feef2e066.tar.bz2
Activates an initial implementation of the support for the Address Book of Mac OS X. Neither it, nor the support for the Address Book of Microsoft Outlook implement the SourceContact image property.
Diffstat (limited to 'src/native/addrbook/AddrBookContactQuery.c')
-rw-r--r--src/native/addrbook/AddrBookContactQuery.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/native/addrbook/AddrBookContactQuery.c b/src/native/addrbook/AddrBookContactQuery.c
new file mode 100644
index 0000000..45cdcd2
--- /dev/null
+++ b/src/native/addrbook/AddrBookContactQuery.c
@@ -0,0 +1,56 @@
+/*
+ * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+#include "AddrBookContactQuery.h"
+
+static void Exception_throwNew
+ (JNIEnv *jniEnv, const char *className, const char *message);
+
+jmethodID
+AddrBookContactQuery_getPtrCallbackMethodID(JNIEnv *jniEnv, jobject callback)
+{
+ jclass callbackClass;
+ jmethodID callbackMethodID = 0;
+
+ /*
+ * Make sure that the specified arguments are valid. For example, check
+ * whether callback exists and has the necessary signature.
+ */
+ if (callback)
+ {
+ callbackClass = (*jniEnv)->GetObjectClass(jniEnv, callback);
+ if (callbackClass)
+ {
+ callbackMethodID
+ = (*jniEnv)->GetMethodID(
+ jniEnv,
+ callbackClass, "callback", "(J)Z");
+ if (!callbackMethodID)
+ {
+ Exception_throwNew(
+ jniEnv, "java/lang/IllegalArgumentException", "callback");
+ }
+ }
+ }
+ else
+ {
+ Exception_throwNew(
+ jniEnv, "java/lang/NullPointerException", "callback");
+ }
+ return callbackMethodID;
+}
+
+static void
+Exception_throwNew(JNIEnv *jniEnv, const char *className, const char *message)
+{
+ jclass clazz;
+
+ clazz = (*jniEnv)->FindClass(jniEnv, className);
+ if (clazz)
+ (*jniEnv)->ThrowNew(jniEnv, clazz, message);
+}
+