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

@ -10,8 +10,11 @@
#import "RTCCallbackLogger.h"
#import "helpers/NSString+StdString.h"
#include <memory>
#include "absl/strings/string_view.h"
#include "rtc_base/checks.h"
#include "rtc_base/log_sinks.h"
#include "rtc_base/logging.h"
@ -21,9 +24,13 @@ class CallbackLogSink : public rtc::LogSink {
CallbackLogSink(RTCCallbackLoggerMessageHandler callbackHandler)
: callback_handler_(callbackHandler) {}
void OnLogMessage(const std::string &message) override {
void OnLogMessage(const std::string& message) override {
OnLogMessage(absl::string_view(message));
}
void OnLogMessage(absl::string_view message) override {
if (callback_handler_) {
callback_handler_([NSString stringWithUTF8String:message.c_str()]);
callback_handler_([NSString stringForAbslStringView:message]);
}
}
@ -38,10 +45,10 @@ class CallbackWithSeverityLogSink : public rtc::LogSink {
void OnLogMessage(const std::string& message) override { RTC_DCHECK_NOTREACHED(); }
void OnLogMessage(const std::string& message, rtc::LoggingSeverity severity) override {
void OnLogMessage(absl::string_view message, rtc::LoggingSeverity severity) override {
if (callback_handler_) {
RTCLoggingSeverity loggingSeverity = NativeSeverityToObjcSeverity(severity);
callback_handler_([NSString stringWithUTF8String:message.c_str()], loggingSeverity);
callback_handler_([NSString stringForAbslStringView:message], loggingSeverity);
}
}

View File

@ -12,6 +12,8 @@
#include <string>
#include "absl/strings/string_view.h"
NS_ASSUME_NONNULL_BEGIN
@interface NSString (StdString)
@ -23,4 +25,10 @@ NS_ASSUME_NONNULL_BEGIN
@end
@interface NSString (AbslStringView)
+ (NSString *)stringForAbslStringView:(const absl::string_view)abslStringView;
@end
NS_ASSUME_NONNULL_END

View File

@ -10,6 +10,8 @@
#import "NSString+StdString.h"
#include "absl/strings/string_view.h"
@implementation NSString (StdString)
- (std::string)stdString {
@ -31,3 +33,13 @@
}
@end
@implementation NSString (AbslStringView)
+ (NSString *)stringForAbslStringView:(const absl::string_view)abslStringView {
return [[NSString alloc] initWithBytes:abslStringView.data()
length:abslStringView.length()
encoding:NSUTF8StringEncoding];
}
@end