CAResult_t CAEDRSendMulticastMessage(const char* data, uint32_t dataLen) { OIC_LOG_V(DEBUG, TAG, "CAEDRSendMulticastMessage(%s)", data); jboolean isAttached = JNI_FALSE; JNIEnv* env; jint res = (*g_jvm)->GetEnv(g_jvm, (void**)&env, JNI_VERSION_1_6); if(res != JNI_OK) { OIC_LOG(DEBUG, TAG, "CAEDRSendMulticastMessage - Could not get JNIEnv pointer"); res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL); if(res != JNI_OK) { OIC_LOG(DEBUG, TAG, "AttachCurrentThread failed"); return CA_STATUS_INVALID_PARAM; } isAttached = JNI_TRUE; } CAEDRSendMulticastMessageImpl(env, data, dataLen); OIC_LOG(DEBUG, TAG, "sent data"); if(isAttached) { OIC_LOG(DEBUG, TAG, "DetachCurrentThread"); (*g_jvm)->DetachCurrentThread(g_jvm); } OIC_LOG(DEBUG, TAG, "OUT - CAEDRSendMulticastMessage"); return CA_STATUS_OK; }
CAResult_t CAEDRSendMulticastMessage(const uint8_t* data, uint32_t dataLen) { VERIFY_NON_NULL(data, TAG, "data is null"); OIC_LOG_V(DEBUG, TAG, "CAEDRSendMulticastMessage(%s)", data); bool isAttached = false; JNIEnv* env; jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6); if (JNI_OK != res) { OIC_LOG(DEBUG, TAG, "CAEDRSendMulticastMessage - Could not get JNIEnv pointer"); res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL); if (JNI_OK != res) { OIC_LOG(ERROR, TAG, "AttachCurrentThread failed"); return CA_STATUS_INVALID_PARAM; } isAttached = true; } CAResult_t result = CAEDRSendMulticastMessageImpl(env, data, dataLen); if(CA_STATUS_OK != result) { OIC_LOG(ERROR, TAG, "CAEDRSendMulticastMessage - could not send multicast message"); return result; } OIC_LOG(DEBUG, TAG, "sent data"); if (isAttached) { OIC_LOG(DEBUG, TAG, "DetachCurrentThread"); (*g_jvm)->DetachCurrentThread(g_jvm); } OIC_LOG(DEBUG, TAG, "OUT - CAEDRSendMulticastMessage"); return CA_STATUS_OK; }