Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: webrtc/sdk/android/src/jni/androidmetrics_jni.cc

Issue 3009613002: Android: Replace webrtc_jni namespace with nested jni namespace (Closed)
Patch Set: Rebase Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2016 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include <map> 11 #include <map>
12 #include <memory> 12 #include <memory>
13 13
14 #include "webrtc/sdk/android/src/jni/classreferenceholder.h" 14 #include "webrtc/sdk/android/src/jni/classreferenceholder.h"
15 #include "webrtc/sdk/android/src/jni/jni_helpers.h" 15 #include "webrtc/sdk/android/src/jni/jni_helpers.h"
16 #include "webrtc/system_wrappers/include/metrics.h" 16 #include "webrtc/system_wrappers/include/metrics.h"
17 #include "webrtc/system_wrappers/include/metrics_default.h" 17 #include "webrtc/system_wrappers/include/metrics_default.h"
18 18
19 // Enables collection of native histograms and creating them. 19 // Enables collection of native histograms and creating them.
20 namespace webrtc_jni { 20 namespace webrtc {
21 namespace jni {
21 22
22 JNI_FUNCTION_DECLARATION(void, Metrics_nativeEnable, JNIEnv* jni, jclass) { 23 JNI_FUNCTION_DECLARATION(void, Metrics_nativeEnable, JNIEnv* jni, jclass) {
23 webrtc::metrics::Enable(); 24 metrics::Enable();
24 } 25 }
25 26
26 // Gets and clears native histograms. 27 // Gets and clears native histograms.
27 JNI_FUNCTION_DECLARATION(jobject, 28 JNI_FUNCTION_DECLARATION(jobject,
28 Metrics_nativeGetAndReset, 29 Metrics_nativeGetAndReset,
29 JNIEnv* jni, 30 JNIEnv* jni,
30 jclass) { 31 jclass) {
31 jclass j_metrics_class = jni->FindClass("org/webrtc/Metrics"); 32 jclass j_metrics_class = jni->FindClass("org/webrtc/Metrics");
32 jmethodID j_add = 33 jmethodID j_add =
33 GetMethodID(jni, j_metrics_class, "add", 34 GetMethodID(jni, j_metrics_class, "add",
34 "(Ljava/lang/String;Lorg/webrtc/Metrics$HistogramInfo;)V"); 35 "(Ljava/lang/String;Lorg/webrtc/Metrics$HistogramInfo;)V");
35 jclass j_info_class = jni->FindClass("org/webrtc/Metrics$HistogramInfo"); 36 jclass j_info_class = jni->FindClass("org/webrtc/Metrics$HistogramInfo");
36 jmethodID j_add_sample = GetMethodID(jni, j_info_class, "addSample", "(II)V"); 37 jmethodID j_add_sample = GetMethodID(jni, j_info_class, "addSample", "(II)V");
37 38
38 // Create |Metrics|. 39 // Create |Metrics|.
39 jobject j_metrics = jni->NewObject( 40 jobject j_metrics = jni->NewObject(
40 j_metrics_class, GetMethodID(jni, j_metrics_class, "<init>", "()V")); 41 j_metrics_class, GetMethodID(jni, j_metrics_class, "<init>", "()V"));
41 42
42 std::map<std::string, std::unique_ptr<webrtc::metrics::SampleInfo>> 43 std::map<std::string, std::unique_ptr<metrics::SampleInfo>> histograms;
43 histograms; 44 metrics::GetAndReset(&histograms);
44 webrtc::metrics::GetAndReset(&histograms);
45 for (const auto& kv : histograms) { 45 for (const auto& kv : histograms) {
46 // Create and add samples to |HistogramInfo|. 46 // Create and add samples to |HistogramInfo|.
47 jobject j_info = jni->NewObject( 47 jobject j_info = jni->NewObject(
48 j_info_class, GetMethodID(jni, j_info_class, "<init>", "(III)V"), 48 j_info_class, GetMethodID(jni, j_info_class, "<init>", "(III)V"),
49 kv.second->min, kv.second->max, 49 kv.second->min, kv.second->max,
50 static_cast<int>(kv.second->bucket_count)); 50 static_cast<int>(kv.second->bucket_count));
51 for (const auto& sample : kv.second->samples) { 51 for (const auto& sample : kv.second->samples) {
52 jni->CallVoidMethod(j_info, j_add_sample, sample.first, sample.second); 52 jni->CallVoidMethod(j_info, j_add_sample, sample.first, sample.second);
53 } 53 }
54 // Add |HistogramInfo| to |Metrics|. 54 // Add |HistogramInfo| to |Metrics|.
55 jstring j_name = jni->NewStringUTF(kv.first.c_str()); 55 jstring j_name = jni->NewStringUTF(kv.first.c_str());
56 jni->CallVoidMethod(j_metrics, j_add, j_name, j_info); 56 jni->CallVoidMethod(j_metrics, j_add, j_name, j_info);
57 jni->DeleteLocalRef(j_name); 57 jni->DeleteLocalRef(j_name);
58 jni->DeleteLocalRef(j_info); 58 jni->DeleteLocalRef(j_info);
59 } 59 }
60 CHECK_EXCEPTION(jni); 60 CHECK_EXCEPTION(jni);
61 return j_metrics; 61 return j_metrics;
62 } 62 }
63 63
64 } // namespace webrtc_jni 64 } // namespace jni
65 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc ('k') | webrtc/sdk/android/src/jni/androidvideotracksource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698