Provide a way to set UUID for the Java API
authorSung-jae Park <nicesj.park@samsung.com>
Fri, 17 Sep 2021 13:05:05 +0000 (22:05 +0900)
committerYoungjae Shin <yj99.shin@samsung.com>
Wed, 22 Sep 2021 22:48:57 +0000 (07:48 +0900)
[Problem] There is no way to set the UUID
[Solution] Add uuid as a third parameter of setInfo and change it from setIpPort

* Delete dangling header which has no body

Change-Id: I2a6753e30270619dc01ea18c41161b0f57df2a6d
Signed-off-by: Sung-jae Park <nicesj.park@samsung.com>
subprojects/libbeyond-android/src/androidTest/java/com/samsung/android/beyond/InferenceUnitTest/InferenceHandlerUnitTest.java
subprojects/libbeyond-android/src/androidTest/java/com/samsung/android/beyond/InferenceUnitTest/InferencePeerUnitTest.java
subprojects/libbeyond-android/src/androidTest/java/com/samsung/android/beyond/InferenceUnitTest/TensorHandlerUnitTest.java
subprojects/libbeyond-android/src/main/java/com/samsung/android/beyond/inference/Peer.java
subprojects/libbeyond-android/src/main/jni/inference/beyond-peer_jni.cc
subprojects/libbeyond-android/src/main/jni/inference/beyond-peer_jni.h

index b62f3f3f8c9ccaff4d06a8293fc5245ea6527aa0..f02e8b9f8aa2c1bed5b010250a0eafc38669fb05 100644 (file)
@@ -74,12 +74,12 @@ public class InferenceHandlerUnitTest {
 
         Peer serverPeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
         assertNotNull(serverPeer);
-        assertTrue(serverPeer.setIpPort());
+        assertTrue(serverPeer.setInfo());
         assertTrue(serverPeer.activateControlChannel());
 
         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
         assertNotNull(inferencePeer);
-        assertTrue(inferencePeer.setIpPort(TEST_SERVER_IP, TEST_SERVER_PORT));
+        assertTrue(inferencePeer.setInfo(TEST_SERVER_IP, TEST_SERVER_PORT, "NoUUID"));
     }
 
     @Test
index 27b1e285589d91692f4558f1c11363a0505cac4e..8a741384e0672887cdfe35b9d14331d392810a34 100644 (file)
@@ -57,13 +57,13 @@ public class InferencePeerUnitTest {
     public void testPeerServerSetIpPort() {
         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
 
-        assertEquals(true, inferencePeer.setIpPort());
+        assertEquals(true, inferencePeer.setInfo());
     }
 
     @Test
     public void testPeerServerActivateControlChannel() {
         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
-        inferencePeer.setIpPort();
+        inferencePeer.setInfo();
 
         assertEquals(true, inferencePeer.activateControlChannel());
     }
@@ -97,7 +97,7 @@ public class InferencePeerUnitTest {
     @Test
     public void testPeerServerDeactivateControlChannel() {
         inferencePeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
-        inferencePeer.setIpPort();
+        inferencePeer.setInfo();
         inferencePeer.activateControlChannel();
 
         assertEquals(true, inferencePeer.deactivateControlChannel());
@@ -114,13 +114,13 @@ public class InferencePeerUnitTest {
     public void testPeerClientSetIpPort() {
         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
 
-        assertEquals(true, inferencePeer.setIpPort(TEST_SERVER_IP, TEST_SERVER_PORT));
+        assertEquals(true, inferencePeer.setInfo(TEST_SERVER_IP, TEST_SERVER_PORT, "NoUUID"));
     }
 
     @Test
     public void testPeerClientActivateControlChannel() {
         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
-        inferencePeer.setIpPort(TEST_SERVER_IP, TEST_SERVER_PORT);
+        inferencePeer.setInfo(TEST_SERVER_IP, TEST_SERVER_PORT, "NoUUID");
 
         assertEquals(true, inferencePeer.activateControlChannel());
     }
@@ -128,11 +128,11 @@ public class InferencePeerUnitTest {
     @Test
     public void testPeerClientDeactivateControlChannel() {
         Peer serverPeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
-        serverPeer.setIpPort();
+        serverPeer.setInfo();
         serverPeer.activateControlChannel();
 
         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
-        inferencePeer.setIpPort();
+        inferencePeer.setInfo();
         inferencePeer.activateControlChannel();
 
         assertEquals(true, inferencePeer.deactivateControlChannel());
index 6904998abbc200afa51e48a151e903c1be1dcbc0..6adadcc72b98695f58403228143063aa8edd7b99 100644 (file)
@@ -75,12 +75,12 @@ public class TensorHandlerUnitTest {
 
         Peer serverPeer = InferenceModuleFactory.createPeerServer(context, NNModule.NAME);
         assertNotNull(serverPeer);
-        assertTrue(serverPeer.setIpPort());
+        assertTrue(serverPeer.setInfo());
         assertTrue(serverPeer.activateControlChannel());
 
         inferencePeer = InferenceModuleFactory.createPeerClient(context, NNModule.NAME);
         assertNotNull(inferencePeer);
-        assertTrue(inferencePeer.setIpPort(TEST_SERVER_IP, TEST_SERVER_PORT));
+        assertTrue(inferencePeer.setInfo(TEST_SERVER_IP, TEST_SERVER_PORT, "NoUUID"));
         assertTrue(inferenceHandler.addInferencePeer(inferencePeer));   // Cover activateControlChannel()
 
         tensorHandler = new TensorHandler(inferenceHandler);
index 0621db462a06aaf4c0bb91cde35f83664734d0de..c829f19651df0574c03bf2b0a25fdb660656f253 100644 (file)
@@ -54,15 +54,12 @@ public class Peer extends NativeInstance {
         registerNativeInstance(instance, (Long instance) -> destroy(instance));
     }
 
-    public boolean setIpPort() {
-        return setInfo(instance, peerIP, peerPort);
+    public boolean setInfo() {
+        return setInfo(instance, "0.0.0.0", 3000, "N/A");
     }
 
-    public boolean setIpPort(String peerIP, int peerPort) {
-        /** TODO: Check validation of arguments. **/
-        this.peerIP = peerIP;
-        this.peerPort = peerPort;
-        return setIpPort();
+    public boolean setInfo(String peerIP, int peerPort, String uuid) {
+        return setInfo(instance, peerIP, peerPort, uuid);
     }
 
     public boolean activateControlChannel() {
@@ -79,7 +76,7 @@ public class Peer extends NativeInstance {
 
     private native long create(Context context, String[] args);
 
-    private native boolean setInfo(long handle, String peerIP, int peerPort);
+    private native boolean setInfo(long handle, String peerIP, int peerPort, String uuid);
 
     private native boolean activate(long handle);
 
@@ -88,8 +85,4 @@ public class Peer extends NativeInstance {
     private native boolean deactivate(long handle);
 
     private static native void destroy(long handle);
-
-    private String peerIP = "0.0.0.0";
-
-    private int peerPort = 3000;
 }
index 52e4fd1114ec7ffd4d2249d1fb50b553fad41066..096d28cfeccb78cd1415e87fe3547880cc9ac87d 100644 (file)
@@ -149,7 +149,7 @@ static void release_arguments(JNIEnv *env, int argc, const char **argv, jstring
     delete[] strs;
 }
 
-jboolean PeerNativeInterface::Java_com_samsung_android_beyond_InferencePeer_set_info(JNIEnv *env, jobject thiz, jlong handle, jstring peer_ip, jint peer_port)
+jboolean PeerNativeInterface::Java_com_samsung_android_beyond_InferencePeer_set_info(JNIEnv *env, jobject thiz, jlong handle, jstring peer_ip, jint peer_port, jstring uuid)
 {
     if (env == nullptr) {
         ErrPrint("JNIEnv is nullptr.");
@@ -162,39 +162,43 @@ jboolean PeerNativeInterface::Java_com_samsung_android_beyond_InferencePeer_set_
         return false;
     }
 
-    const struct beyond_peer_info *info;
-    int ret = peer_handle->peer->GetInfo(info);
-    if (ret < 0) {
-        ErrPrint("Fail to get peer info, ret = %d\n", ret);
+    beyond_peer_info info = {
+        .name = const_cast<char *>("serviceName"),
+        .host = nullptr,
+        .port = { static_cast<unsigned short>(peer_port) },
+        .free_memory = 0llu,
+        .free_storage = 0llu,
+        .count_of_runtimes = 0,
+        .runtimes = nullptr,
+    };
+
+    const char *_uuid = env->GetStringUTFChars(uuid, nullptr);
+    if (_uuid == nullptr) {
+        ErrPrint("Fail to get StringUTFChars of uuid.");
         return false;
     }
 
-    const char *ip = env->GetStringUTFChars(peer_ip, nullptr);
-    if (ip == nullptr) {
+    snprintf(info.uuid, BEYOND_UUID_LEN, "%s", _uuid);
+
+    env->ReleaseStringUTFChars(uuid, _uuid);
+
+    const char *_peer_ip = env->GetStringUTFChars(peer_ip, nullptr);
+    if (_peer_ip == nullptr) {
         ErrPrint("Fail to get StringUTFChars of a peer IP.");
         return false;
     }
-    DbgPrint("Peer IP = %s, ports[0] = %d, ports[1] = %d\n", ip, peer_port, peer_port + 1);
-    struct beyond_peer_info new_info = {
-        .host = const_cast<char *>(ip),
-        .port = { static_cast<unsigned short>(peer_port), static_cast<unsigned short>(peer_port + 1) },
-        .free_memory = 0llu,
-        .free_storage = 0llu,
-    };
-    if (info == nullptr) {
-        new_info.uuid[0] = '\0';
-    } else {
-        snprintf(new_info.uuid, BEYOND_UUID_LEN, "%s", info->uuid);
-    }
-    ret = peer_handle->peer->SetInfo(&new_info);
+
+    info.host = const_cast<char *>(_peer_ip);
+
+    DbgPrint("Peer IP = %s, ports[0] = %d, uuid = %s\n", _peer_ip, peer_port, info.uuid);
+
+    int ret = peer_handle->peer->SetInfo(&info);
+    env->ReleaseStringUTFChars(peer_ip, _peer_ip);
     if (ret < 0) {
         ErrPrint("Fail to set peer info, ret = %d\n", ret);
-        env->ReleaseStringUTFChars(peer_ip, ip);
         return false;
     }
 
-    env->ReleaseStringUTFChars(peer_ip, ip);
-
     return true;
 }
 
@@ -280,7 +284,7 @@ int PeerNativeInterface::RegisterPeerNatives(JNIEnv *env)
 
     static JNINativeMethod peer_jni_methods[] = {
         { "create", "(Landroid/content/Context;[Ljava/lang/String;)J", (void *)Java_com_samsung_android_beyond_InferencePeer_create },
-        { "setInfo", "(JLjava/lang/String;I)Z", (void *)Java_com_samsung_android_beyond_InferencePeer_set_info },
+        { "setInfo", "(JLjava/lang/String;ILjava/lang/String;)Z", (void *)Java_com_samsung_android_beyond_InferencePeer_set_info },
         { "activate", "(J)Z", (void *)Java_com_samsung_android_beyond_InferencePeer_activate },
         { "configure", "(JCLjava/lang/Object;)Z", (void *)Java_com_samsung_android_beyond_InferencePeer_configure },
         { "deactivate", "(J)Z", (void *)Java_com_samsung_android_beyond_InferencePeer_deactivate },
index 1083240c243150833e0e25501dba8eaa3f46729e..5a806c8584bbc3c5129723b20b258cf2a60ac297 100644 (file)
@@ -36,8 +36,7 @@ private:
     virtual ~PeerNativeInterface(void);
 
     static jlong Java_com_samsung_android_beyond_InferencePeer_create(JNIEnv *env, jobject thiz, jobject context, jobjectArray args);
-    static jboolean Java_com_samsung_android_beyond_InferencePeer_set_info(JNIEnv *env, jobject thiz, jlong handle, jstring peer_ip, jint peer_port);
-    static jboolean Java_com_samsung_android_beyond_InferencePeer_set_uuid(JNIEnv *env, jobject thiz, jlong handle, jstring peer_uuid);
+    static jboolean Java_com_samsung_android_beyond_InferencePeer_set_info(JNIEnv *env, jobject thiz, jlong handle, jstring peer_ip, jint peer_port, jstring uuid);
     static jboolean Java_com_samsung_android_beyond_InferencePeer_activate(JNIEnv *env, jobject thiz, jlong handle);
     static jboolean Java_com_samsung_android_beyond_InferencePeer_prepare(JNIEnv *env, jobject thiz, jlong handle);
     static jboolean Java_com_samsung_android_beyond_InferencePeer_deactivate(JNIEnv *env, jobject thiz, jlong handle);