Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / service / soft-sensor-manager / SSMCore / src / SSMInterface / SSMCore_JNI.cpp
index 9dbb031..f088ed2 100644 (file)
@@ -17,8 +17,9 @@
 * limitations under the License.
 *
 ******************************************************************/
-#include "SSMCore.h"
 #include "SSMInterface/SSMCore_JNI.h"
+
+#include "SSMCore.h"
 #include "Common/PlatformLayer.h"
 
 #define JNI_E_INVALIDARG -1001
@@ -37,7 +38,6 @@ jclass                      g_ClassQueryEngine = NULL;
 jclass                      g_ClassDataReader = NULL;
 jclass                      g_ClassModelData = NULL;
 jclass                      g_ClassQueryEngineEvent = NULL;
-
 jclass                      g_ClassReportReceiver = NULL;
 jobject                     g_objReportReceiver = NULL;
 
@@ -53,13 +53,11 @@ void ReportMessage(const char *tag, const char *msg)
     ATTACH_CURRENT_THREAD(g_JVM, env);
 
     jmethodID midReportReceiver =
-        env->GetMethodID(g_ClassReportReceiver, "OnMessageReceived",
+        env->GetMethodID(g_ClassReportReceiver, "onMessageReceived",
                          "(Ljava/lang/String;Ljava/lang/String;)V");
 
-    jclass nonVIrtualObject = env->GetObjectClass(g_objReportReceiver);
-
-    env->CallNonvirtualVoidMethod(g_objReportReceiver, nonVIrtualObject, midReportReceiver,
-                                  env->NewStringUTF(tag), env->NewStringUTF(msg));
+    env->CallVoidMethod(g_objReportReceiver, midReportReceiver,
+                        env->NewStringUTF(tag), env->NewStringUTF(msg));
 
     DETACH_CURRENT_THREAD(g_JVM);
 
@@ -88,7 +86,7 @@ class QueryEngineEventReceiver
             }
         }
 
-        void SetQueryEngineEventObj(jobject objQueryEngineEvent)
+        void setQueryEngineEventObj(jobject objQueryEngineEvent)
         {
             if (m_objQueryEngineEvent != NULL)
             {
@@ -100,7 +98,7 @@ class QueryEngineEventReceiver
             m_objQueryEngineEvent = objQueryEngineEvent;
         }
 
-        SSMRESULT onQueryEngineEvent(IN int cqid, IN IDataReader *pResult)
+        SSMRESULT onQueryEngineEvent(int cqid, IDataReader *pResult)
         {
             JNIEnv *env;
             g_JVM->GetEnv((void **) &env, JNI_VERSION_1_6);
@@ -108,19 +106,17 @@ class QueryEngineEventReceiver
             ATTACH_CURRENT_THREAD(g_JVM, env);
 
             jmethodID midQueryEngineEvent =
-                env->GetMethodID(g_ClassQueryEngineEvent, "OnQueryEngineEvent",
-                                 "(ILcom/sec/android/ssmcore/DataReader;)V");
-
-            jclass nonVIrtualObject = env->GetObjectClass(m_objQueryEngineEvent);
+                env->GetMethodID(g_ClassQueryEngineEvent, "onQueryEngineEvent",
+                                 "(ILorg/iotivity/service/ssm/DataReader;)V");
 
             jmethodID cid_DataReader = env->GetMethodID(g_ClassDataReader, "<init>", "(I)V");
 
             if (cid_DataReader == NULL)
                 return SSM_E_FAIL;
 
-            env->CallNonvirtualVoidMethod(m_objQueryEngineEvent, nonVIrtualObject, midQueryEngineEvent,
-                                          (jint)cqid,
-                                          env->NewObject(g_ClassDataReader, cid_DataReader, (jint)pResult));
+            env->CallVoidMethod(m_objQueryEngineEvent, midQueryEngineEvent,
+                                (jint)cqid,
+                                env->NewObject(g_ClassDataReader, cid_DataReader, (jint)pResult));
 
             DETACH_CURRENT_THREAD(g_JVM);
 
@@ -137,19 +133,19 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved)
         return JNI_ERR;
 
     g_ClassQueryEngine = (jclass) env->NewGlobalRef(
-                             env->FindClass("com/sec/android/ssmcore/QueryEngine"));
+                             env->FindClass("org/iotivity/service/ssm/QueryEngine"));
 
     g_ClassDataReader = (jclass) env->NewGlobalRef(
-                            env->FindClass("com/sec/android/ssmcore/DataReader"));
+                            env->FindClass("org/iotivity/service/ssm/DataReader"));
 
-    g_ClassModelData = (jclass) env->NewGlobalRef(env->FindClass("com/sec/android/ssmcore/ModelData"));
+    g_ClassModelData = (jclass) env->NewGlobalRef(env->FindClass("org/iotivity/service/ssm/ModelData"));
 
     g_ClassQueryEngineEvent = (jclass) env->NewGlobalRef(
-                                  env->FindClass("com/sec/android/ssmcore/IQueryEngineEvent"));
+                                  env->FindClass("org/iotivity/service/ssm/IQueryEngineEvent"));
 
 
     g_ClassReportReceiver = (jclass) env->NewGlobalRef(
-                                env->FindClass("com/sec/android/ssmcore/IReportReceiver"));
+                                env->FindClass("org/iotivity/service/ssm/IReportReceiver"));
 
 
     g_JVM = jvm;
@@ -191,9 +187,16 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved)
         delete g_QueryEngineEventReceiver;
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_InitializeSSMCore
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_initializeSSMCore
 (JNIEnv *env, jclass clz, jstring jstrXmlDescription)
 {
+    if (jstrXmlDescription == NULL)
+    {
+        env->ThrowNew(env->FindClass("java/lang/IllegalArgumentException"),
+                      "InitializeSSMCore failed with Invalid parameter");
+        return;
+    }
+
     SSMRESULT res = SSM_E_FAIL;
     const char *xmlDescription = env->GetStringUTFChars(jstrXmlDescription, NULL);
 
@@ -205,28 +208,28 @@ JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_InitializeSSM
         env->ThrowNew(env->FindClass("java/lang/IllegalArgumentException"), "InitializeSSMCore failed");
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_StartSSMCore
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_startSSMCore
 (JNIEnv *env, jclass clz)
 {
     if (StartSSMCore() != SSM_S_OK)
         env->ThrowNew(env->FindClass("java/lang/IllegalArgumentException"), "StartSSMCore failed");
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_StopSSMCore
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_stopSSMCore
 (JNIEnv *env, jclass clz)
 {
     if (StopSSMCore() != SSM_S_OK)
         env->ThrowNew(env->FindClass("java/lang/IllegalArgumentException"), "StopSSMCore failed");
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_TerminateSSMCore
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_terminateSSMCore
 (JNIEnv *env, jclass clz)
 {
     if (TerminateSSMCore() != SSM_S_OK)
         env->ThrowNew(env->FindClass("java/lang/IllegalArgumentException"), "TerminateSSMCore failed");
 }
 
-JNIEXPORT jobject JNICALL Java_com_sec_android_ssmcore_CoreController_CreateQueryEngine
+JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_createQueryEngine
 (JNIEnv *env, jclass clz)
 {
     IQueryEngine        *pQueryEngine = NULL;
@@ -245,13 +248,13 @@ JNIEXPORT jobject JNICALL Java_com_sec_android_ssmcore_CoreController_CreateQuer
     return env->NewObject(g_ClassQueryEngine, cid_QueryEngine, (jint)pQueryEngine);
 }
 
-JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_ReleaseQueryEngine
+JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_releaseQueryEngine
 (JNIEnv *env, jclass clz, jobject queryEngine)
 {
     IQueryEngine        *pQueryEngine = NULL;
 
     jmethodID mid_GetQueryEngineInstance = env->GetMethodID(g_ClassQueryEngine,
-                                           "GetQueryEngineInstance", "()I");
+                                           "getQueryEngineInstance", "()I");
 
     if (mid_GetQueryEngineInstance == NULL)
         return JNI_E_METHODID;
@@ -261,10 +264,17 @@ JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_ReleaseQueryE
     return ReleaseQueryEngine(pQueryEngine);
 }
 
-JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_ExecuteContextQuery
+JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_executeContextQuery
 (JNIEnv *env, jclass clz, jint pQueryEngineInstance, jstring jstrContextQuery)
 {
-    int                 cqid = 0;
+    int                 cqid = -1;
+    if (jstrContextQuery == NULL)
+    {
+        env->ThrowNew(env->FindClass("java/lang/IllegalArgumentException"),
+                      "ExecuteContextQuery with Invalid context query");
+        return cqid;
+    }
+
     IQueryEngine        *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
 
     const char *contextQuery = env->GetStringUTFChars(jstrContextQuery, NULL);
@@ -278,7 +288,7 @@ JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_ExecuteContex
     return cqid;
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_RegisterQueryEvent
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerQueryEvent
 (JNIEnv *env, jclass clz, jint pQueryEngineInstance, jobject queryEngineEvent)
 {
     IQueryEngine        *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
@@ -289,11 +299,11 @@ JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_RegisterQuery
         return;
     }
 
-    g_QueryEngineEventReceiver->SetQueryEngineEventObj(env->NewGlobalRef(queryEngineEvent));
+    g_QueryEngineEventReceiver->setQueryEngineEventObj(env->NewGlobalRef(queryEngineEvent));
     pQueryEngine->registerQueryEvent(g_QueryEngineEventReceiver);
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_KillContextQuery
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_killContextQuery
 (JNIEnv *env, jclass clz, jint pQueryEngineInstance, jint cqid)
 {
     IQueryEngine        *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
@@ -304,7 +314,7 @@ JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_KillContextQu
     }
 }
 
-JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_GetDataId
+JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getDataId
 (JNIEnv *env, jclass clz, jint pDataReaderInstance)
 {
     IModelData *pDataReader = (IModelData *)pDataReaderInstance;
@@ -312,7 +322,7 @@ JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_GetDataId
     return pDataReader->getDataId();
 }
 
-JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_GetPropertyCount
+JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyCount
 (JNIEnv *env, jclass clz, jint pIModelDataInstance )
 {
     IModelData *pModelData = (IModelData *)pIModelDataInstance;
@@ -320,7 +330,7 @@ JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_GetPropertyCo
     return pModelData->getPropertyCount();
 }
 
-JNIEXPORT jstring JNICALL Java_com_sec_android_ssmcore_CoreController_GetPropertyName
+JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyName
 (JNIEnv *env, jclass clz, jint pIModelDataInstance, jint propertyIndex )
 {
     IModelData *pModelData = (IModelData *)pIModelDataInstance;
@@ -328,7 +338,7 @@ JNIEXPORT jstring JNICALL Java_com_sec_android_ssmcore_CoreController_GetPropert
     return env->NewStringUTF(pModelData->getPropertyName(propertyIndex).c_str());
 }
 
-JNIEXPORT jstring JNICALL Java_com_sec_android_ssmcore_CoreController_GetPropertyValue
+JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyValue
 (JNIEnv *env, jclass clz, jint pIModelDataInstance, jint propertyIndex )
 {
     IModelData *pModelData = (IModelData *)pIModelDataInstance;
@@ -336,7 +346,7 @@ JNIEXPORT jstring JNICALL Java_com_sec_android_ssmcore_CoreController_GetPropert
     return env->NewStringUTF(pModelData->getPropertyValue(propertyIndex).c_str());
 }
 
-JNIEXPORT jobject JNICALL Java_com_sec_android_ssmcore_CoreController_GetAffectedModels
+JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getAffectedModels
 (JNIEnv *env, jclass clz, jint pDataReaderInstance)
 {
     IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
@@ -361,7 +371,7 @@ JNIEXPORT jobject JNICALL Java_com_sec_android_ssmcore_CoreController_GetAffecte
     return objAffectedModels;
 }
 
-JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_GetModelDataCount
+JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getModelDataCount
 (JNIEnv *env, jclass clz, jint pDataReaderInstance, jstring jstrModelName)
 {
     IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
@@ -378,7 +388,7 @@ JNIEXPORT jint JNICALL Java_com_sec_android_ssmcore_CoreController_GetModelDataC
     return modelCount;
 }
 //return IModelData
-JNIEXPORT jobject JNICALL Java_com_sec_android_ssmcore_CoreController_GetModelData
+JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getModelData
 (JNIEnv *env, jclass clz, jint pDataReaderInstance, jstring jstrModelName, jint jintDataIndex )
 {
     IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
@@ -399,7 +409,7 @@ JNIEXPORT jobject JNICALL Java_com_sec_android_ssmcore_CoreController_GetModelDa
     return env->NewObject(g_ClassModelData, cid_ModelData, (jint)pModelData);
 }
 
-JNIEXPORT void JNICALL Java_com_sec_android_ssmcore_CoreController_RegisterReportReceiver
+JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerReportReceiver
 (JNIEnv *env, jclass clz, jobject reportReceiver)
 {
     if (g_objReportReceiver != NULL)