17405867cSopenharmony_ci/* 27405867cSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 37405867cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 47405867cSopenharmony_ci * you may not use this file except in compliance with the License. 57405867cSopenharmony_ci * You may obtain a copy of the License at 67405867cSopenharmony_ci * 77405867cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 87405867cSopenharmony_ci * 97405867cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 107405867cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 117405867cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 127405867cSopenharmony_ci * See the License for the specific language governing permissions and 137405867cSopenharmony_ci * limitations under the License. 147405867cSopenharmony_ci */ 157405867cSopenharmony_ci#include "app_event.h" 167405867cSopenharmony_ci 177405867cSopenharmony_ci#include "ffrt.h" 187405867cSopenharmony_ci#include "hiappevent_base.h" 197405867cSopenharmony_ci#include "hiappevent_verify.h" 207405867cSopenharmony_ci#include "hiappevent_write.h" 217405867cSopenharmony_ci 227405867cSopenharmony_cinamespace OHOS { 237405867cSopenharmony_cinamespace HiviewDFX { 247405867cSopenharmony_cinamespace HiAppEvent { 257405867cSopenharmony_ciEvent::Event(const std::string& domain, const std::string& name, EventType type) 267405867cSopenharmony_ci{ 277405867cSopenharmony_ci eventPack_ = std::make_shared<AppEventPack>(domain, name, type); 287405867cSopenharmony_ci} 297405867cSopenharmony_ci 307405867cSopenharmony_civoid Event::AddParam(const std::string& key, bool value) 317405867cSopenharmony_ci{ 327405867cSopenharmony_ci eventPack_->AddParam(key, value); 337405867cSopenharmony_ci} 347405867cSopenharmony_ci 357405867cSopenharmony_civoid Event::AddParam(const std::string& key, int32_t value) 367405867cSopenharmony_ci{ 377405867cSopenharmony_ci eventPack_->AddParam(key, value); 387405867cSopenharmony_ci} 397405867cSopenharmony_ci 407405867cSopenharmony_civoid Event::AddParam(const std::string& key, int64_t value) 417405867cSopenharmony_ci{ 427405867cSopenharmony_ci eventPack_->AddParam(key, value); 437405867cSopenharmony_ci} 447405867cSopenharmony_ci 457405867cSopenharmony_civoid Event::AddParam(const std::string& key, double value) 467405867cSopenharmony_ci{ 477405867cSopenharmony_ci eventPack_->AddParam(key, value); 487405867cSopenharmony_ci} 497405867cSopenharmony_ci 507405867cSopenharmony_civoid Event::AddParam(const std::string& key, const std::string& value) 517405867cSopenharmony_ci{ 527405867cSopenharmony_ci eventPack_->AddParam(key, value); 537405867cSopenharmony_ci} 547405867cSopenharmony_ci 557405867cSopenharmony_civoid Event::AddParam(const std::string& key, const std::vector<bool>& value) 567405867cSopenharmony_ci{ 577405867cSopenharmony_ci eventPack_->AddParam(key, value); 587405867cSopenharmony_ci} 597405867cSopenharmony_ci 607405867cSopenharmony_civoid Event::AddParam(const std::string& key, const std::vector<int32_t>& value) 617405867cSopenharmony_ci{ 627405867cSopenharmony_ci eventPack_->AddParam(key, value); 637405867cSopenharmony_ci} 647405867cSopenharmony_ci 657405867cSopenharmony_civoid Event::AddParam(const std::string& key, const std::vector<int64_t>& value) 667405867cSopenharmony_ci{ 677405867cSopenharmony_ci eventPack_->AddParam(key, value); 687405867cSopenharmony_ci} 697405867cSopenharmony_ci 707405867cSopenharmony_civoid Event::AddParam(const std::string& key, const std::vector<double>& value) 717405867cSopenharmony_ci{ 727405867cSopenharmony_ci eventPack_->AddParam(key, value); 737405867cSopenharmony_ci} 747405867cSopenharmony_ci 757405867cSopenharmony_civoid Event::AddParam(const std::string& key, const std::vector<std::string>& value) 767405867cSopenharmony_ci{ 777405867cSopenharmony_ci eventPack_->AddParam(key, value); 787405867cSopenharmony_ci} 797405867cSopenharmony_ci 807405867cSopenharmony_ciint Write(const Event& event) 817405867cSopenharmony_ci{ 827405867cSopenharmony_ci if (!IsApp()) { 837405867cSopenharmony_ci return ErrorCode::ERROR_NOT_APP; 847405867cSopenharmony_ci } 857405867cSopenharmony_ci int ret = VerifyAppEvent(event.eventPack_); 867405867cSopenharmony_ci if (ret >= 0) { 877405867cSopenharmony_ci auto appEventPack = event.eventPack_; 887405867cSopenharmony_ci ffrt::submit([appEventPack]() { 897405867cSopenharmony_ci WriteEvent(appEventPack); 907405867cSopenharmony_ci }, {}, {}, ffrt::task_attr().name("app_event")); 917405867cSopenharmony_ci } 927405867cSopenharmony_ci return ret; 937405867cSopenharmony_ci} 947405867cSopenharmony_ci} // namespace HiAppEvent 957405867cSopenharmony_ci} // namespace HiviewDFX 967405867cSopenharmony_ci} // namespace OHOS 97