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)30 std::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