Android: Generate JNI code for RTCStats
Bug: webrtc:8278 Change-Id: I183cec54ec3e97894db7f26e365eb9941a1ab458 Reviewed-on: https://webrtc-review.googlesource.com/25660 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20879}
This commit is contained in:
committed by
Commit Bot
parent
6bd39025ec
commit
c4c8876f70
@ -13,6 +13,9 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "sdk/android/generated_peerconnection_jni/jni/RTCStatsCollectorCallback_jni.h"
|
||||
#include "sdk/android/generated_peerconnection_jni/jni/RTCStatsReport_jni.h"
|
||||
#include "sdk/android/generated_peerconnection_jni/jni/RTCStats_jni.h"
|
||||
#include "sdk/android/src/jni/classreferenceholder.h"
|
||||
|
||||
namespace webrtc {
|
||||
@ -23,17 +26,6 @@ RTCStatsCollectorCallbackWrapper::RTCStatsCollectorCallbackWrapper(
|
||||
jobject j_callback)
|
||||
: j_callback_global_(jni, j_callback),
|
||||
j_callback_class_(jni, GetObjectClass(jni, j_callback)),
|
||||
j_stats_report_class_(FindClass(jni, "org/webrtc/RTCStatsReport")),
|
||||
j_stats_report_ctor_(GetMethodID(jni,
|
||||
j_stats_report_class_,
|
||||
"<init>",
|
||||
"(JLjava/util/Map;)V")),
|
||||
j_stats_class_(FindClass(jni, "org/webrtc/RTCStats")),
|
||||
j_stats_ctor_(GetMethodID(
|
||||
jni,
|
||||
j_stats_class_,
|
||||
"<init>",
|
||||
"(JLjava/lang/String;Ljava/lang/String;Ljava/util/Map;)V")),
|
||||
j_linked_hash_map_class_(FindClass(jni, "java/util/LinkedHashMap")),
|
||||
j_linked_hash_map_ctor_(
|
||||
GetMethodID(jni, j_linked_hash_map_class_, "<init>", "()V")),
|
||||
@ -61,10 +53,8 @@ void RTCStatsCollectorCallbackWrapper::OnStatsDelivered(
|
||||
JNIEnv* jni = AttachCurrentThreadIfNeeded();
|
||||
ScopedLocalRefFrame local_ref_frame(jni);
|
||||
jobject j_report = ReportToJava(jni, report);
|
||||
jmethodID m = GetMethodID(jni, *j_callback_class_, "onStatsDelivered",
|
||||
"(Lorg/webrtc/RTCStatsReport;)V");
|
||||
jni->CallVoidMethod(*j_callback_global_, m, j_report);
|
||||
CHECK_EXCEPTION(jni) << "error during CallVoidMethod";
|
||||
Java_RTCStatsCollectorCallback_onStatsDelivered(jni, *j_callback_global_,
|
||||
j_report);
|
||||
}
|
||||
|
||||
jobject RTCStatsCollectorCallbackWrapper::ReportToJava(
|
||||
@ -82,9 +72,8 @@ jobject RTCStatsCollectorCallbackWrapper::ReportToJava(
|
||||
jni->CallObjectMethod(j_stats_map, j_linked_hash_map_put_, j_id, j_stats);
|
||||
CHECK_EXCEPTION(jni) << "error during CallObjectMethod";
|
||||
}
|
||||
jobject j_report = jni->NewObject(j_stats_report_class_, j_stats_report_ctor_,
|
||||
report->timestamp_us(), j_stats_map);
|
||||
CHECK_EXCEPTION(jni) << "error during NewObject";
|
||||
jobject j_report =
|
||||
Java_RTCStatsReport_create(jni, report->timestamp_us(), j_stats_map);
|
||||
return j_report;
|
||||
}
|
||||
|
||||
@ -106,8 +95,7 @@ jobject RTCStatsCollectorCallbackWrapper::StatsToJava(JNIEnv* jni,
|
||||
CHECK_EXCEPTION(jni) << "error during CallObjectMethod";
|
||||
}
|
||||
jobject j_stats =
|
||||
jni->NewObject(j_stats_class_, j_stats_ctor_, stats.timestamp_us(),
|
||||
j_type, j_id, j_members);
|
||||
Java_RTCStats_create(jni, stats.timestamp_us(), j_type, j_id, j_members);
|
||||
CHECK_EXCEPTION(jni) << "error during NewObject";
|
||||
return j_stats;
|
||||
}
|
||||
|
||||
@ -38,10 +38,6 @@ class RTCStatsCollectorCallbackWrapper : public RTCStatsCollectorCallback {
|
||||
|
||||
const ScopedGlobalRef<jobject> j_callback_global_;
|
||||
const ScopedGlobalRef<jclass> j_callback_class_;
|
||||
const jclass j_stats_report_class_;
|
||||
const jmethodID j_stats_report_ctor_;
|
||||
const jclass j_stats_class_;
|
||||
const jmethodID j_stats_ctor_;
|
||||
const jclass j_linked_hash_map_class_;
|
||||
const jmethodID j_linked_hash_map_ctor_;
|
||||
const jmethodID j_linked_hash_map_put_;
|
||||
|
||||
Reference in New Issue
Block a user