Add callback interface and open source license term.
authorch79.cho <ch79.cho@samsung.com>
Mon, 23 May 2016 04:51:05 +0000 (13:51 +0900)
committerUze Choi <uzchoi@samsung.com>
Tue, 24 May 2016 10:16:27 +0000 (10:16 +0000)
The files for JNI interface are modified to offer callback function
and add open source license term.

Change-Id: I3f9453b37f274b9098117550e530a388b318ac02
Signed-off-by: ch79.cho <ch79.cho@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/8269
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
service/notification/android/notification-service/src/main/java/org/iotivity/service/notification/IoTNotification.java
service/notification/android/notification-service/src/main/jni/notificationProvider.c
service/notification/android/notification-service/src/main/jni/notificationProvider.h

index ca22906..3bea94e 100644 (file)
@@ -1,36 +1,35 @@
-package org.iotivity.service.notification;\r
-\r
-import android.util.Log;\r
-import org.iotivity.service.notification.NSMessage;\r
-import org.iotivity.service.notification.NSConsumer;\r
-import org.iotivity.service.notification.NSSync;\r
-\r
-public class IoTNotification {\r
-    public IoTNotification(){}\r
-\r
-    static {\r
-        System.loadLibrary("notification_provider_jni");\r
-    }\r
-\r
-    public void onLogPrinted(String log)\r
-    {\r
-        Log.i("JNI_NS_CALLBACK", "[C->J] Log: " + log);\r
-    }\r
-\r
-    public void onSubscribeRequest(String consumer)\r
-    {\r
-        Log.i("JNI_NS_CALLBACK", "[C->J] Consumer IP: " + consumer);\r
-    }\r
-\r
-    public void onMessageSync(String sync)\r
-    {\r
-        Log.i("JNI_NS_CALLBACK", "[C->J] Sync Status" + sync);\r
-    }\r
-      \r
-    public native int NSStartProvider(boolean access);\r
-    public native int NSStopProvider();\r
-    public native int NSSendNotification(NSMessage message);\r
-    public native int NSProviderReadCheck(NSMessage message);\r
-    public native int NSAccept(NSConsumer consumer, boolean accepted);\r
-}\r
-\r
+package org.iotivity.service.notification;
+
+import android.util.Log;
+import org.iotivity.service.notification.NSMessage;
+import org.iotivity.service.notification.NSConsumer;
+import org.iotivity.service.notification.NSSync;
+
+public class IoTNotification
+{
+    public IoTNotification()
+    {
+    }
+
+    static
+    {
+        System.loadLibrary("notification_provider_jni");
+    }
+
+    public native int NSStartProvider(boolean access,
+        NSSubscriptionListner subscriptionListener,
+        NSSynchListner syncListener);
+    public native int NSStopProvider();
+    public native int NSSendNotification(NSMessage message);
+    public native int NSProviderReadCheck(NSMessage message);
+    public native int NSAccept(NSConsumer consumer, boolean accepted);
+
+    public interface NSSubscriptionListner {
+        public void OnNSSubscribedEvent(String consumerId);
+    }
+
+    public interface NSSynchListner {
+        public void OnNSSynchronizedEvent(String messageId, int syncState);
+    }
+}
+
index 94d598f..588a84c 100644 (file)
@@ -1,6 +1,22 @@
+//******************************************************************\r
 //\r
-// Created by jaesick.shin on 2016-04-26.\r
+// Copyright 2016 Samsung Electronics All Rights Reserved.\r
 //\r
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//      http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
 \r
 #include <android/log.h>\r
 #include <stdio.h>\r
@@ -11,7 +27,8 @@
 #define  LOGE(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)\r
 \r
 static JavaVM *g_jvm = NULL;\r
-static jobject g_obj = NULL;\r
+static jobject g_obj_subscriptionListener = NULL;\r
+static jobject g_obj_syncListener = NULL;\r
 \r
 JNIEXPORT jint JNI_OnLoad(JavaVM *jvm, void *reserved)\r
 {\r
@@ -22,119 +39,66 @@ JNIEXPORT jint JNI_OnLoad(JavaVM *jvm, void *reserved)
 }\r
 \r
 JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSStartProvider(\r
-        JNIEnv * env, jobject jObj, jboolean jAccess)\r
+        JNIEnv * env, jobject jObj, jboolean jAccess, jobject jSubscriptionListener,\r
+        jobject jSyncListener)\r
 {\r
-    LOGI("JNI TEST - NSStartProvider...");\r
+    LOGI("NSStartProvider...");\r
 \r
-    g_obj = jObj;\r
+    if (!jSubscriptionListener || !jSyncListener)\r
+    {\r
+        LOGI("Fail to set listeners");\r
+        //return (jint) NS_ERROR;\r
+    }\r
 \r
-    //JNIlogPrintedCallback(env, jObj, "NSStartProvider");\r
+    g_obj_subscriptionListener = (jobject) (*env)->NewGlobalRef(env, jSubscriptionListener);\r
+    g_obj_syncListener = (jobject) (*env)->NewGlobalRef(env, jSyncListener);\r
 \r
+    // check access policy\r
     NSAccessPolicy access = NS_ACCEPTER_PROVIDER;\r
-    if(NSStartProvider(access, NSSubscribeRequestCb, NSSyncCb) == 0)\r
-    {\r
-        LOGI("JNI TEST - Success to start NSProvider service");\r
-    }\r
-    else\r
+\r
+    if (NSStartProvider(access, NSSubscribeRequestCb, NSSyncCb) != NS_OK)\r
     {\r
-        LOGE("JNI TEST - Fail to start NSProvider service");\r
+        LOGE("Fail to start NSProvider service");\r
+        return (jint) NS_ERROR;\r
     }\r
-    //NSStartProvider(access, NULL, NULL);\r
 \r
-    return 0;\r
+    return (jint) NS_OK;\r
 }\r
 \r
 JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSStopProvider(\r
         JNIEnv * env, jobject jObj)\r
 {\r
-    LOGI("JNI TEST - NSStopProvider");\r
-    return NSStopProvider();\r
+    LOGI("NSStopProvider");\r
 \r
-    return 0;\r
+    (*env)->DeleteGlobalRef(env, g_obj_subscriptionListener);\r
+    (*env)->DeleteGlobalRef(env, g_obj_syncListener);\r
+\r
+    if (NSStopProvider() != NS_OK)\r
+    {\r
+        LOGE("Fail to stop NSProvider service");\r
+        return (jint) NS_ERROR;\r
+    }\r
+\r
+    return (jint) NS_OK;\r
 }\r
 \r
 JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSSendNotification(\r
         JNIEnv * env, jobject jObj, jobject jMsg)\r
 {\r
-    LOGI("JNI TEST - NSSendNotification");\r
-\r
-//    bool isAttached = false;\r
-//    //JNIEnv* env;\r
-//    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
-//    if (JNI_OK != res)\r
-//    {\r
-//        LOGI("AttachCurrentThread for JNIEnv pointer");\r
-//        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);\r
-//\r
-//        if (JNI_OK != res)\r
-//        {\r
-//            LOGE("AttachCurrentThread has failed");\r
-//            return -1;\r
-//        }\r
-//        isAttached = true;\r
-//    }\r
-\r
-    jclass cls = (*env)->GetObjectClass(env, jMsg);\r
-\r
-    // Message ID\r
-    jfieldID fid_id = (*env)->GetFieldID(env, cls, "id", "Ljava/lang/String;");\r
-    if (fid_id == NULL)\r
-    {\r
-        LOGI("JNI TEST - Error: jfieldID for message id is null");\r
-        return 0;\r
-    }\r
-    jstring jmsgId = (*env)->GetObjectField(env, jMsg, fid_id);\r
-    const char * messageId = (*env)->GetStringUTFChars(env, jmsgId, NULL);\r
-    if (messageId == NULL)\r
-    {\r
-        printf("JNI TEST - Error: messageId is null\n");\r
-        return 0;\r
-    }\r
-    LOGI("JNI TEST - Message ID: %s\n", messageId);\r
-    JNIlogPrintedCallback(env, jObj, messageId);\r
-\r
-    (*env)->ReleaseStringUTFChars(env, jmsgId, messageId);\r
+    LOGI("NSSendNotification");\r
 \r
-    // Message Title\r
-    jfieldID fid_title = (*env)->GetFieldID(env, cls, "title", "Ljava/lang/String;");\r
-    if (fid_title == NULL)\r
+    if (!jMsg)\r
     {\r
-        LOGE("JNI TEST - Error: jfieldID for message id is null");\r
-        return 0;\r
+        LOGI("Fail to send notification - Message is null");\r
+        return (jint) NS_ERROR;\r
     }\r
-    jstring jmsgTitle = (*env)->GetObjectField(env, jMsg, fid_title);\r
-    const char * messageTitle = (*env)->GetStringUTFChars(env, jmsgTitle, NULL);\r
-    if (messageTitle == NULL)\r
-    {\r
-        printf("JNI TEST - Error: messageTitle is null\n");\r
-        return 0;\r
-    }\r
-    LOGI("JNI TEST - Message Title: %s\n", messageTitle);\r
-    (*env)->ReleaseStringUTFChars(env, jmsgTitle, messageTitle);\r
 \r
-    // Message Body\r
-    jfieldID fid_body = (*env)->GetFieldID(env, cls, "body", "Ljava/lang/String;");\r
-    if (fid_body == NULL)\r
-    {\r
-        LOGE("JNI TEST - Error: jfieldID for message id is null");\r
-        return 0;\r
-    }\r
-    jstring jmsgBody = (*env)->GetObjectField(env, jMsg, fid_body);\r
-    const char * messageBody = (*env)->GetStringUTFChars(env, jmsgBody, NULL);\r
-    if (messageBody == NULL)\r
-    {\r
-        printf("JNI TEST - Error: messageBody is null\n");\r
-        return 0;\r
-    }\r
-    LOGI("JNI TEST - Message Body: %s\n", messageBody);\r
-    (*env)->ReleaseStringUTFChars(env, jmsgBody, messageBody);\r
+    NSMessage * nsMsg = NSGetMessage(env, jMsg);\r
 \r
-//    if (isAttached)\r
-//    {\r
-//        (*g_jvm)->DetachCurrentThread(g_jvm);\r
-//    }\r
+    LOGI("JNI TEST - NSSendNotification");\r
+    NSSendNotification(nsMsg);\r
 \r
-    return 0;\r
+    return (jint) NS_OK;\r
 }\r
 \r
 JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSProviderReadCheck(\r
@@ -161,149 +125,169 @@ JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NS
     return 0;\r
 }\r
 \r
-void JNIlogPrintedCallback(JNIEnv * env, jobject jObj, const char * log)\r
+void NSSubscribeRequestCb(NSConsumer *consumer)\r
 {\r
-    static jmethodID cb = NULL;\r
-    //jclass cls = (*env)->FindClass(env, "com/sec/notiproviderexample/ProviderExample");\r
-    jclass cls = (*env)->GetObjectClass(env, jObj);\r
-    if (cls == NULL)\r
-    {\r
-        LOGE("JNI TEST - Error: cannot find callback class");\r
-    }\r
+    LOGI("Subscription requested by consumer");\r
 \r
-    if (cb == NULL)\r
+    JNIEnv * env;\r
+    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
+    if (JNI_OK != res)\r
     {\r
-        cb = (*env)->GetMethodID(env, cls, "onLogPrinted", "(Ljava/lang/String;)V");\r
-        if (cb == NULL)\r
+        if (res == JNI_EDETACHED)\r
         {\r
-            LOGE("JNI TEST - Error: cannot get callback method");\r
+            if ((*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL) != JNI_OK)\r
+            {\r
+                LOGE("Failed to get the environment");\r
+                return;\r
+            }\r
+            else\r
+            {\r
+                LOGE("Success to get the environment");\r
+            }\r
+        }\r
+        else\r
+        {\r
+            LOGE("Failed to get the environment using GetEnv()");\r
             return;\r
         }\r
-        LOGI("JNI TEST - Get callback method - onLogPrinted");\r
-\r
-        jstring msg = (*env)->NewStringUTF(env, log);\r
-        LOGI("print: %s", log);\r
-\r
-        (*env)->CallVoidMethod(env, jObj, cb, msg);\r
     }\r
-}\r
 \r
-void JNISubscribeRequestCallback(JNIEnv * env, jobject jObj, char * consumer)\r
-{\r
-    static jmethodID cb = NULL;\r
-    //jclass cls = (*env)->FindClass(env, "com/sec/notiproviderexample/ProviderExample");\r
-    jclass cls = (*env)->GetObjectClass(env, jObj);\r
-    if (cls == NULL)\r
+    jclass cls = (*env)->GetObjectClass(env, g_obj_subscriptionListener);\r
+    if (!cls)\r
     {\r
-        LOGE("JNI TEST - Error: cannot find callback class");\r
+        LOGE("Failed to Get ObjectClass");\r
+        return;\r
     }\r
-\r
-    if (cb == NULL)\r
+    jmethodID mid = (*env)->GetMethodID(env, cls, "OnNSSubscribedEvent", "(Ljava/lang/String;)V");\r
+    if (!mid)\r
     {\r
-        cb = (*env)->GetMethodID(env, cls, "onSubscribeRequest", "(Ljava/lang/String;)V");\r
-        if (cb == NULL)\r
-        {\r
-            LOGE("JNI TEST - Error: cannot get callback method");\r
-            return;\r
-        }\r
-        LOGI("JNI TEST - Get callback method - onSubscribeRequest");\r
-\r
-        jstring msg = (*env)->NewStringUTF(env, consumer);\r
-        LOGI("print: %s", consumer);\r
-\r
-        (*env)->CallVoidMethod(env, jObj, cb, msg);\r
+        LOGE("Failed to Get MethodID");\r
+        return;\r
     }\r
-}\r
 \r
-void JNIMessageSyncCallback(JNIEnv * env, jobject jObj, char * message)\r
-{\r
-    static jmethodID cb = NULL;\r
-    //jclass cls = (*env)->FindClass(env, "com/sec/notiproviderexample/ProviderExample");\r
-    jclass cls = (*env)->GetObjectClass(env, jObj);\r
-    if (cls == NULL)\r
-    {\r
-        LOGE("JNI TEST - Error: cannot find callback class");\r
-    }\r
+    //(*env)->CallVoidMethod(env, g_obj_subscriptionListener, mid);\r
 \r
-    if (cb == NULL)\r
-    {\r
-        cb = (*env)->GetMethodID(env, cls, "onMessageSync", "(Ljava/lang/String;)V");\r
-        if (cb == NULL)\r
-        {\r
-            LOGE("JNI TEST - Error: cannot get callback method");\r
-            return;\r
-        }\r
-        LOGI("JNI TEST - Get callback method - onMessageSync");\r
+    (*g_jvm)->DetachCurrentThread(g_jvm);\r
 \r
-        jstring msg = (*env)->NewStringUTF(env, message);\r
-        LOGI("print: %s", message);\r
+    NSAccept(consumer, true);\r
 \r
-        (*env)->CallVoidMethod(env, jObj, cb, msg);\r
-    }\r
+    return;\r
 }\r
 \r
-void NSSubscribeRequestCb(NSConsumer *consumer)\r
+void NSSyncCb(NSProvider *provider, NSSync *sync)\r
 {\r
-    LOGI("JNI TEST - consumer requested to subscribe");\r
-\r
-    char *cid = consumer->mId;\r
-    LOGI("JNI TEST - NS_ Consumer ID: %s\n", cid);\r
+    LOGI("Sync requested");\r
 \r
-    bool isAttached = false;\r
-    JNIEnv* env;\r
+    JNIEnv * env;\r
     jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
     if (JNI_OK != res)\r
     {\r
-        LOGI("AttachCurrentThread for JNIEnv pointer");\r
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);\r
-\r
-        if (JNI_OK != res)\r
+        if (JNI_EDETACHED)\r
+        {\r
+            if ((*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL) < 0)\r
+            {\r
+                LOGE("Failed to get the environment");\r
+                return;\r
+            }\r
+            else\r
+            {\r
+                LOGE("Success to get the environment");\r
+            }\r
+        }\r
+        else\r
         {\r
-            LOGE("AttachCurrentThread has failed");\r
+            LOGE("Failed to get the environment using GetEnv()");\r
             return;\r
         }\r
-        isAttached = true;\r
     }\r
 \r
-    // callback to app\r
-    JNISubscribeRequestCallback(env, g_obj, cid);\r
+    LOGI("Sync ID : %s\n", sync->mMessageId);\r
+    LOGI("Sync STATE : %d\n", sync->mState);\r
+\r
+    jstring strMessageId = (*env)->NewStringUTF(env, sync->mMessageId);\r
 \r
-    if (isAttached)\r
+    jclass cls = (*env)->GetObjectClass(env, g_obj_syncListener);\r
+    if (!cls)\r
     {\r
-        (*g_jvm)->DetachCurrentThread(g_jvm);\r
+        LOGE("Failed to Get ObjectClass");\r
+        return;\r
+    }\r
+    jmethodID mid = (*env)->GetMethodID(env, cls, "OnNSSynchronizedEvent",\r
+            "(Ljava/lang/String;I)V");\r
+    if (!mid)\r
+    {\r
+        LOGE("Failed to Get MethodID");\r
+        return;\r
     }\r
 \r
-    NSAccept(consumer, true);\r
+    //(*env)->CallVoidMethod(env, g_obj_syncListener, mid, strMessageId, (jint) sync->mState);\r
+\r
+    (*g_jvm)->DetachCurrentThread(g_jvm);\r
+\r
+    return;\r
+\r
 }\r
 \r
-void NSSyncCb(NSProvider *provider, NSSync *sync)\r
+NSMessage * NSGetMessage(JNIEnv * env, jobject jMsg)\r
 {\r
-    LOGI("JNI TEST - sync requested");\r
-    LOGI("JNI TEST - NS_ Sync MessageID: %s\n", sync->mMessageId);\r
-    LOGI("JNI TEST - NS_ Sync State: %d\n", sync->mState);\r
+    LOGI("NSGetMessage");\r
 \r
-    bool isAttached = false;\r
-    JNIEnv* env;\r
-    jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
-    if (JNI_OK != res)\r
-    {\r
-        LOGI("AttachCurrentThread for JNIEnv pointer");\r
-        res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);\r
+    jclass cls = (*env)->GetObjectClass(env, jMsg);\r
 \r
-        if (JNI_OK != res)\r
-        {\r
-            LOGE("AttachCurrentThread has failed");\r
-            return;\r
-        }\r
-        isAttached = true;\r
+    // Message ID\r
+    jfieldID fid_id = (*env)->GetFieldID(env, cls, "id", "Ljava/lang/String;");\r
+    if (fid_id == NULL)\r
+    {\r
+        LOGI("Error: jfieldID for message id is null");\r
+        return (jint) NS_ERROR;\r
+    }\r
+    jstring jmsgId = (*env)->GetObjectField(env, jMsg, fid_id);\r
+    const char * messageId = (*env)->GetStringUTFChars(env, jmsgId, NULL);\r
+    if (messageId == NULL)\r
+    {\r
+        printf("Error: messageId is null\n");\r
+        return (jint) NS_ERROR;\r
     }\r
+    LOGI("Message ID: %s\n", messageId);\r
 \r
-    // callback to app\r
-    JNIMessageSyncCallback(env, g_obj, sync->mMessageId);\r
+    // Message Title\r
+    jfieldID fid_title = (*env)->GetFieldID(env, cls, "title", "Ljava/lang/String;");\r
+    if (fid_title == NULL)\r
+    {\r
+        LOGE("Error: jfieldID for message id is null");\r
+        return (jint) NS_ERROR;\r
+    }\r
+    jstring jmsgTitle = (*env)->GetObjectField(env, jMsg, fid_title);\r
+    const char * messageTitle = (*env)->GetStringUTFChars(env, jmsgTitle, NULL);\r
+    if (messageTitle == NULL)\r
+    {\r
+        printf("Error: messageTitle is null\n");\r
+        return (jint) NS_ERROR;\r
+    }\r
+    LOGI("Message Title: %s\n", messageTitle);\r
 \r
-    if (isAttached)\r
+    // Message Body\r
+    jfieldID fid_body = (*env)->GetFieldID(env, cls, "body", "Ljava/lang/String;");\r
+    if (fid_body == NULL)\r
     {\r
-        (*g_jvm)->DetachCurrentThread(g_jvm);\r
+        LOGE("Error: jfieldID for message id is null");\r
+        return (jint) NS_ERROR;\r
     }\r
+    jstring jmsgBody = (*env)->GetObjectField(env, jMsg, fid_body);\r
+    const char * messageBody = (*env)->GetStringUTFChars(env, jmsgBody, NULL);\r
+    if (messageBody == NULL)\r
+    {\r
+        printf("Error: messageBody is null\n");\r
+        return (jint) NS_ERROR;\r
+    }\r
+    LOGI("Message Body: %s\n", messageBody);\r
+\r
+    NSMessage * nsMsg = (NSMessage *) malloc(sizeof(NSMessage));\r
+\r
+    nsMsg->mId = strdup(messageId);\r
+    nsMsg->mTitle = strdup(messageTitle);\r
+    nsMsg->mContentText = strdup(messageBody);\r
+\r
+    return nsMsg;\r
 \r
 }\r
index 406bd5f..b462651 100644 (file)
@@ -1,45 +1,54 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */\r
+//******************************************************************\r
+//\r
+// Copyright 2016 Samsung Electronics All Rights Reserved.\r
+//\r
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//      http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
+\r
 #include <jni.h>\r
 #include "NSProviderInterface.h"\r
 #include "NSCommon.h"\r
-/* Header for class com_sec_notiproviderjni_IoTNotification */\r
 \r
 #ifndef NOTIFICATION_JNI_H\r
 #define NOTIFICATION_JNI_H\r
 #ifdef __cplusplus\r
-extern "C" {\r
+extern "C"\r
+{\r
 #endif\r
 \r
-/*\r
- * Class:     com_sec_notiproviderjni_IoTNotification\r
- * Method:    stringFromJNI\r
- * Signature: ()Ljava/lang/String;\r
- */\r
- JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSStartProvider\r
- (JNIEnv *, jobject, jboolean);\r
-\r
- JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSStopProvider\r
-  (JNIEnv *, jobject);\r
-\r
- JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSSendNotification\r
-  (JNIEnv *, jobject, jobject);\r
-\r
- JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSProviderReadCheck\r
-  (JNIEnv *, jobject, jobject);\r
+    JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSStartProvider(\r
+            JNIEnv *, jobject, jboolean, jobject, jobject);\r
 \r
- JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSAccept\r
-  (JNIEnv *, jobject, jobject, jboolean);\r
+    JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSStopProvider(\r
+            JNIEnv *, jobject);\r
 \r
- void JNIlogPrintedCallback(JNIEnv*, jobject, const char*);\r
+    JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSSendNotification(\r
+            JNIEnv *, jobject, jobject);\r
 \r
- void JNISubscribeRequestCallback(JNIEnv*, jobject, char*);\r
+    JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSProviderReadCheck(\r
+            JNIEnv *, jobject, jobject);\r
 \r
- void JNIMessageSyncCallback(JNIEnv*, jobject, char*);\r
+    JNIEXPORT jint JNICALL Java_org_iotivity_service_notification_IoTNotification_NSAccept(JNIEnv *,\r
+            jobject, jobject, jboolean);\r
 \r
- void NSSubscribeRequestCb(NSConsumer*);\r
   void NSSubscribeRequestCb(NSConsumer*);\r
 \r
- void NSSyncCb(NSProvider*, NSSync*);\r
   void NSSyncCb(NSProvider*, NSSync*);\r
 \r
+    NSMessage * NSGetMessage(JNIEnv *, jobject);\r
 \r
 #ifdef __cplusplus\r
 }\r