| /* |
| * Copyright 2017 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| #include <jni.h> |
| #undef JNIEXPORT |
| #define JNIEXPORT __attribute__((visibility("default"))) |
| #include <string> |
| |
| #include "rtc_base/logging.h" |
| #include "rtc_base/thread.h" |
| #include "rtc_tools/network_tester/test_controller.h" |
| |
| extern "C" JNIEXPORT jlong JNICALL |
| Java_com_google_media_networktester_NetworkTester_CreateTestController( |
| JNIEnv* jni, |
| jclass) { |
| rtc::ThreadManager::Instance()->WrapCurrentThread(); |
| return reinterpret_cast<intptr_t>(new webrtc::TestController( |
| 0, 0, "/mnt/sdcard/network_tester_client_config.dat", |
| "/mnt/sdcard/network_tester_client_packet_log.dat")); |
| } |
| |
| extern "C" JNIEXPORT void JNICALL |
| Java_com_google_media_networktester_NetworkTester_TestControllerConnect( |
| JNIEnv* jni, |
| jclass, |
| jlong native_pointer) { |
| reinterpret_cast<webrtc::TestController*>(native_pointer) |
| ->SendConnectTo("85.195.237.107", 9090); |
| } |
| |
| extern "C" JNIEXPORT bool JNICALL |
| Java_com_google_media_networktester_NetworkTester_TestControllerIsDone( |
| JNIEnv* jni, |
| jclass, |
| jlong native_pointer) { |
| return reinterpret_cast<webrtc::TestController*>(native_pointer) |
| ->IsTestDone(); |
| } |
| |
| extern "C" JNIEXPORT void JNICALL |
| Java_com_google_media_networktester_NetworkTester_TestControllerRun( |
| JNIEnv* jni, |
| jclass, |
| jlong native_pointer) { |
| // 100 ms arbitrary chosen, but it works well. |
| rtc::Thread::Current()->ProcessMessages(/*cms=*/100); |
| } |
| |
| extern "C" JNIEXPORT void JNICALL |
| Java_com_google_media_networktester_NetworkTester_DestroyTestController( |
| JNIEnv* jni, |
| jclass, |
| jlong native_pointer) { |
| webrtc::TestController* test_controller = |
| reinterpret_cast<webrtc::TestController*>(native_pointer); |
| if (test_controller) { |
| delete test_controller; |
| } |
| rtc::ThreadManager::Instance()->UnwrapCurrentThread(); |
| } |