11401458bSopenharmony_ci/* 21401458bSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 31401458bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41401458bSopenharmony_ci * you may not use this file except in compliance with the License. 51401458bSopenharmony_ci * You may obtain a copy of the License at 61401458bSopenharmony_ci * 71401458bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81401458bSopenharmony_ci * 91401458bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101401458bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111401458bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121401458bSopenharmony_ci * See the License for the specific language governing permissions and 131401458bSopenharmony_ci * limitations under the License. 141401458bSopenharmony_ci */ 151401458bSopenharmony_ci 161401458bSopenharmony_ci#include "hisysevent_tool_query.h" 171401458bSopenharmony_ci 181401458bSopenharmony_ci#include <algorithm> 191401458bSopenharmony_ci#include <cstdint> 201401458bSopenharmony_ci#include <cstdlib> 211401458bSopenharmony_ci#include <iosfwd> 221401458bSopenharmony_ci#include <iostream> 231401458bSopenharmony_ci#include <memory> 241401458bSopenharmony_ci#include <ostream> 251401458bSopenharmony_ci#include <vector> 261401458bSopenharmony_ci#include <unistd.h> 271401458bSopenharmony_ci 281401458bSopenharmony_ci#include "hisysevent_json_decorator.h" 291401458bSopenharmony_ci 301401458bSopenharmony_cinamespace OHOS { 311401458bSopenharmony_cinamespace HiviewDFX { 321401458bSopenharmony_civoid HiSysEventToolQuery::OnQuery(std::shared_ptr<std::vector<HiSysEventRecord>> sysEvents) 331401458bSopenharmony_ci{ 341401458bSopenharmony_ci if (sysEvents == nullptr) { 351401458bSopenharmony_ci return; 361401458bSopenharmony_ci } 371401458bSopenharmony_ci for_each((*sysEvents).cbegin(), (*sysEvents).cend(), [this] (const HiSysEventRecord& sysEventRecord) { 381401458bSopenharmony_ci if (this->checkValidEvent && this->eventJsonDecorator != nullptr) { 391401458bSopenharmony_ci std::cout << this->eventJsonDecorator->DecorateEventJsonStr(sysEventRecord) << std::endl; 401401458bSopenharmony_ci return; 411401458bSopenharmony_ci } 421401458bSopenharmony_ci std::cout << sysEventRecord.AsJson() << std::endl; 431401458bSopenharmony_ci }); 441401458bSopenharmony_ci} 451401458bSopenharmony_ci 461401458bSopenharmony_civoid HiSysEventToolQuery::OnComplete(int32_t reason, int32_t total) 471401458bSopenharmony_ci{ 481401458bSopenharmony_ci if (!autoExit) { 491401458bSopenharmony_ci return; 501401458bSopenharmony_ci } 511401458bSopenharmony_ci _exit(0); 521401458bSopenharmony_ci} 531401458bSopenharmony_ci} // namespace HiviewDFX 541401458bSopenharmony_ci} // namespace OHOS 55