1 /****************************************************************************** 2 * 3 * Copyright 2022 Google, Inc. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19 #pragma once 20 21 #include <string> 22 23 #include "os/logging/log_redaction.h" 24 25 // as RawAddress does not implement IRedactableLoggable 26 // here we use a template function as a tricky workaround. 27 // in the future. we want to convert it into a function 28 // that takes a reference to IRedactableLoggable 29 template <typename Loggable> ToLoggableStr(const Loggable & loggable)30std::string ToLoggableStr(const Loggable& loggable) { 31 if (bluetooth::os::should_log_be_redacted()) { 32 return loggable.ToRedactedStringForLogging(); 33 } else { 34 return loggable.ToStringForLogging(); 35 } 36 } 37 38 #define ADDRESS_TO_LOGGABLE_STR(addr) ToLoggableStr(addr) 39 #define ADDRESS_TO_LOGGABLE_CSTR(addr) ADDRESS_TO_LOGGABLE_STR(addr).c_str() 40 41 #define PRIVATE_CELL(number) \ 42 (number \ 43 .replace( \ 44 0, \ 45 (number.size() > 2) ? number.size() - 2 : 0, \ 46 (number.size() > 2) ? number.size() - 2 : 0, \ 47 '*') \ 48 .c_str()) 49 50 #define PRIVATE_NAME(name) (name) 51