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