1/* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "global.h" 17 18#include <cstdio> 19#include <thread> 20 21namespace OHOS { 22namespace MiscServices { 23void LogTimeStamp() 24{ 25 struct timeval tv; 26 gettimeofday(&tv, nullptr); 27 struct tm nowTime; 28 localtime_r(&tv.tv_sec, &nowTime); 29 int32_t millSec = 1000; 30 printf("%02d-%02d %02d:%02d:%02d.%03d\t", nowTime.tm_mon, nowTime.tm_mday, nowTime.tm_hour, nowTime.tm_min, 31 nowTime.tm_sec, static_cast<int32_t>(tv.tv_usec) / millSec); 32} 33 34bool BlockRetry(uint32_t interval, uint32_t maxRetryTimes, Function func) 35{ 36 IMSA_HILOGD("retry start"); 37 uint32_t times = 0; 38 do { 39 times++; 40 if (func()) { 41 IMSA_HILOGD("success, retry times is: %{public}d", times); 42 return true; 43 } 44 std::this_thread::sleep_for(std::chrono::milliseconds(interval)); 45 } while (times < maxRetryTimes); 46 IMSA_HILOGI("retry failed"); 47 return false; 48} 49} // namespace MiscServices 50} // namespace OHOS