1*9356374aSAndroid Build Coastguard Worker // Copyright 2019 The Abseil Authors. 2*9356374aSAndroid Build Coastguard Worker // 3*9356374aSAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); 4*9356374aSAndroid Build Coastguard Worker // you may not use this file except in compliance with the License. 5*9356374aSAndroid Build Coastguard Worker // You may obtain a copy of the License at 6*9356374aSAndroid Build Coastguard Worker // 7*9356374aSAndroid Build Coastguard Worker // https://www.apache.org/licenses/LICENSE-2.0 8*9356374aSAndroid Build Coastguard Worker // 9*9356374aSAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 10*9356374aSAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 11*9356374aSAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*9356374aSAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 13*9356374aSAndroid Build Coastguard Worker // limitations under the License. 14*9356374aSAndroid Build Coastguard Worker #include "absl/status/status_payload_printer.h" 15*9356374aSAndroid Build Coastguard Worker 16*9356374aSAndroid Build Coastguard Worker #include "absl/base/config.h" 17*9356374aSAndroid Build Coastguard Worker #include "absl/base/internal/atomic_hook.h" 18*9356374aSAndroid Build Coastguard Worker 19*9356374aSAndroid Build Coastguard Worker namespace absl { 20*9356374aSAndroid Build Coastguard Worker ABSL_NAMESPACE_BEGIN 21*9356374aSAndroid Build Coastguard Worker namespace status_internal { 22*9356374aSAndroid Build Coastguard Worker 23*9356374aSAndroid Build Coastguard Worker ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES 24*9356374aSAndroid Build Coastguard Worker static absl::base_internal::AtomicHook<StatusPayloadPrinter> storage; 25*9356374aSAndroid Build Coastguard Worker SetStatusPayloadPrinter(StatusPayloadPrinter printer)26*9356374aSAndroid Build Coastguard Workervoid SetStatusPayloadPrinter(StatusPayloadPrinter printer) { 27*9356374aSAndroid Build Coastguard Worker storage.Store(printer); 28*9356374aSAndroid Build Coastguard Worker } 29*9356374aSAndroid Build Coastguard Worker GetStatusPayloadPrinter()30*9356374aSAndroid Build Coastguard WorkerStatusPayloadPrinter GetStatusPayloadPrinter() { 31*9356374aSAndroid Build Coastguard Worker return storage.Load(); 32*9356374aSAndroid Build Coastguard Worker } 33*9356374aSAndroid Build Coastguard Worker 34*9356374aSAndroid Build Coastguard Worker } // namespace status_internal 35*9356374aSAndroid Build Coastguard Worker ABSL_NAMESPACE_END 36*9356374aSAndroid Build Coastguard Worker } // namespace absl 37