123b3eb3cSopenharmony_ci/* 223b3eb3cSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 323b3eb3cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 423b3eb3cSopenharmony_ci * you may not use this file except in compliance with the License. 523b3eb3cSopenharmony_ci * You may obtain a copy of the License at 623b3eb3cSopenharmony_ci * 723b3eb3cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 823b3eb3cSopenharmony_ci * 923b3eb3cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1023b3eb3cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1123b3eb3cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1223b3eb3cSopenharmony_ci * See the License for the specific language governing permissions and 1323b3eb3cSopenharmony_ci * limitations under the License. 1423b3eb3cSopenharmony_ci */ 1523b3eb3cSopenharmony_ci 1623b3eb3cSopenharmony_ci#include "base/log/ace_trace.h" 1723b3eb3cSopenharmony_ci 1823b3eb3cSopenharmony_ci#include "hitrace_meter.h" 1923b3eb3cSopenharmony_ci 2023b3eb3cSopenharmony_ci#include "base/utils/utils.h" 2123b3eb3cSopenharmony_ci 2223b3eb3cSopenharmony_cinamespace OHOS::Ace { 2323b3eb3cSopenharmony_cinamespace { 2423b3eb3cSopenharmony_cistatic constexpr uint64_t ACE_TRACE_COMMERCIAL = HITRACE_TAG_ACE | HITRACE_TAG_COMMERCIAL; 2523b3eb3cSopenharmony_cistatic constexpr uint64_t ANIMATION_TRACE_COMMERCIAL = HITRACE_TAG_ANIMATION | HITRACE_TAG_COMMERCIAL; 2623b3eb3cSopenharmony_ci} 2723b3eb3cSopenharmony_ci 2823b3eb3cSopenharmony_civoid AceTraceBegin(const char* name) 2923b3eb3cSopenharmony_ci{ 3023b3eb3cSopenharmony_ci CHECK_NULL_VOID(name); 3123b3eb3cSopenharmony_ci std::string nameStr(name); 3223b3eb3cSopenharmony_ci StartTrace(HITRACE_TAG_ACE, nameStr); 3323b3eb3cSopenharmony_ci} 3423b3eb3cSopenharmony_ci 3523b3eb3cSopenharmony_civoid AceTraceEnd() 3623b3eb3cSopenharmony_ci{ 3723b3eb3cSopenharmony_ci FinishTrace(HITRACE_TAG_ACE); 3823b3eb3cSopenharmony_ci} 3923b3eb3cSopenharmony_ci 4023b3eb3cSopenharmony_civoid AceTraceBeginCommercial(const char* name) 4123b3eb3cSopenharmony_ci{ 4223b3eb3cSopenharmony_ci StartTrace(ACE_TRACE_COMMERCIAL, name); 4323b3eb3cSopenharmony_ci} 4423b3eb3cSopenharmony_ci 4523b3eb3cSopenharmony_civoid AceTraceEndCommercial() 4623b3eb3cSopenharmony_ci{ 4723b3eb3cSopenharmony_ci FinishTrace(ACE_TRACE_COMMERCIAL); 4823b3eb3cSopenharmony_ci} 4923b3eb3cSopenharmony_ci 5023b3eb3cSopenharmony_civoid AceAsyncTraceBegin(int32_t taskId, const char* name, bool isAnimationTrace) 5123b3eb3cSopenharmony_ci{ 5223b3eb3cSopenharmony_ci CHECK_NULL_VOID(name); 5323b3eb3cSopenharmony_ci std::string nameStr(name); 5423b3eb3cSopenharmony_ci if (isAnimationTrace) { 5523b3eb3cSopenharmony_ci StartAsyncTrace(HITRACE_TAG_ANIMATION, nameStr, taskId); 5623b3eb3cSopenharmony_ci } else { 5723b3eb3cSopenharmony_ci StartAsyncTrace(HITRACE_TAG_ACE, nameStr, taskId); 5823b3eb3cSopenharmony_ci } 5923b3eb3cSopenharmony_ci} 6023b3eb3cSopenharmony_ci 6123b3eb3cSopenharmony_civoid AceAsyncTraceEnd(int32_t taskId, const char* name, bool isAnimationTrace) 6223b3eb3cSopenharmony_ci{ 6323b3eb3cSopenharmony_ci CHECK_NULL_VOID(name); 6423b3eb3cSopenharmony_ci std::string nameStr(name); 6523b3eb3cSopenharmony_ci if (isAnimationTrace) { 6623b3eb3cSopenharmony_ci FinishAsyncTrace(HITRACE_TAG_ANIMATION, nameStr, taskId); 6723b3eb3cSopenharmony_ci } else { 6823b3eb3cSopenharmony_ci FinishAsyncTrace(HITRACE_TAG_ACE, nameStr, taskId); 6923b3eb3cSopenharmony_ci } 7023b3eb3cSopenharmony_ci} 7123b3eb3cSopenharmony_ci 7223b3eb3cSopenharmony_civoid AceAsyncTraceBeginCommercial(int32_t taskId, const char* name, bool isAnimationTrace) 7323b3eb3cSopenharmony_ci{ 7423b3eb3cSopenharmony_ci CHECK_NULL_VOID(name); 7523b3eb3cSopenharmony_ci std::string nameStr(name); 7623b3eb3cSopenharmony_ci if (isAnimationTrace) { 7723b3eb3cSopenharmony_ci StartAsyncTrace(ANIMATION_TRACE_COMMERCIAL, nameStr, taskId); 7823b3eb3cSopenharmony_ci } else { 7923b3eb3cSopenharmony_ci StartAsyncTrace(ACE_TRACE_COMMERCIAL, nameStr, taskId); 8023b3eb3cSopenharmony_ci } 8123b3eb3cSopenharmony_ci} 8223b3eb3cSopenharmony_ci 8323b3eb3cSopenharmony_civoid AceAsyncTraceEndCommercial(int32_t taskId, const char* name, bool isAnimationTrace) 8423b3eb3cSopenharmony_ci{ 8523b3eb3cSopenharmony_ci CHECK_NULL_VOID(name); 8623b3eb3cSopenharmony_ci std::string nameStr(name); 8723b3eb3cSopenharmony_ci if (isAnimationTrace) { 8823b3eb3cSopenharmony_ci FinishAsyncTrace(ANIMATION_TRACE_COMMERCIAL, nameStr, taskId); 8923b3eb3cSopenharmony_ci } else { 9023b3eb3cSopenharmony_ci FinishAsyncTrace(ACE_TRACE_COMMERCIAL, nameStr, taskId); 9123b3eb3cSopenharmony_ci } 9223b3eb3cSopenharmony_ci} 9323b3eb3cSopenharmony_ci 9423b3eb3cSopenharmony_civoid AceCountTrace(const char *key, int32_t count) 9523b3eb3cSopenharmony_ci{ 9623b3eb3cSopenharmony_ci CHECK_NULL_VOID(key); 9723b3eb3cSopenharmony_ci std::string keyStr(key); 9823b3eb3cSopenharmony_ci CountTrace(HITRACE_TAG_ACE, keyStr, count); 9923b3eb3cSopenharmony_ci} 10023b3eb3cSopenharmony_ci} // namespace OHOS::Ace 101