diff options
author | Lyubomir Marinov <lyubomir.marinov@jitsi.org> | 2011-01-07 19:01:32 +0000 |
---|---|---|
committer | Lyubomir Marinov <lyubomir.marinov@jitsi.org> | 2011-01-07 19:01:32 +0000 |
commit | 72bc56dbb32f2e311a9250ad561c9e3feef2e066 (patch) | |
tree | e10b816ef1a405e16caaba09ccc141cb073376e2 /src/native/addrbook/AddrBookContactQuery.c | |
parent | 8b919ddfb1de75c72c256aa671203183c5bfc232 (diff) | |
download | jitsi-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.c | 56 |
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); +} + |