Adopt absl::string_view in rtc_base/log_sinks

This is part of a large scale effort to increase adoption of
absl::string_view across the WebRTC code base.

This CL adds absl::string_view versions of the OnLogMessage functions in
rtc::LogSink. The const std::string& versions are kept for now since
downstream clients use subclasses of LogSink and need to be migrated
before these are removed.

Bug: webrtc:13579
Change-Id: I57bb72ad503805ff0ca16f1d7aece2d44c65cb73
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253980
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Owners-Override: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36189}
This commit is contained in:
Ali Tofigh
2022-03-14 13:32:04 +01:00
committed by WebRTC LUCI CQ
parent 9848890590
commit 6364d0899e
16 changed files with 118 additions and 24 deletions

View File

@ -9,6 +9,7 @@
*/
#include "sdk/android/src/jni/logging/log_sink.h"
#include "absl/strings/string_view.h"
#include "sdk/android/generated_logging_jni/JNILogging_jni.h"
namespace webrtc {
@ -18,18 +19,24 @@ JNILogSink::JNILogSink(JNIEnv* env, const JavaRef<jobject>& j_logging)
: j_logging_(env, j_logging) {}
JNILogSink::~JNILogSink() = default;
void JNILogSink::OnLogMessage(const std::string& msg,
rtc::LoggingSeverity severity,
const char* tag) {
JNIEnv* env = AttachCurrentThreadIfNeeded();
Java_JNILogging_logToInjectable(env, j_logging_, NativeToJavaString(env, msg),
NativeToJavaInteger(env, severity),
NativeToJavaString(env, tag));
}
void JNILogSink::OnLogMessage(const std::string& msg) {
RTC_DCHECK_NOTREACHED();
}
void JNILogSink::OnLogMessage(const std::string& msg,
rtc::LoggingSeverity severity,
const char* tag) {
OnLogMessage(absl::string_view{msg}, severity, tag);
}
void JNILogSink::OnLogMessage(absl::string_view msg,
rtc::LoggingSeverity severity,
const char* tag) {
JNIEnv* env = AttachCurrentThreadIfNeeded();
Java_JNILogging_logToInjectable(
env, j_logging_, NativeToJavaString(env, std::string(msg)),
NativeToJavaInteger(env, severity), NativeToJavaString(env, tag));
}
} // namespace jni
} // namespace webrtc

View File

@ -12,6 +12,7 @@
#include <string>
#include "absl/strings/string_view.h"
#include "rtc_base/logging.h"
#include "sdk/android/native_api/jni/java_types.h"
#include "sdk/android/src/jni/jni_helpers.h"
@ -24,10 +25,13 @@ class JNILogSink : public rtc::LogSink {
JNILogSink(JNIEnv* env, const JavaRef<jobject>& j_logging);
~JNILogSink() override;
void OnLogMessage(const std::string& msg) override;
void OnLogMessage(const std::string& msg,
rtc::LoggingSeverity severity,
const char* tag) override;
void OnLogMessage(const std::string& msg) override;
void OnLogMessage(absl::string_view msg,
rtc::LoggingSeverity severity,
const char* tag) override;
private:
const ScopedJavaGlobalRef<jobject> j_logging_;