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 "notification_subscribe_info.h" 17 18 #include <string> // for basic_string, operator+ 19 #include <vector> // for vector 20 21 #include "ans_log_wrapper.h" 22 #include "parcel.h" // for Parcel 23 24 namespace OHOS { 25 namespace Notification { NotificationSubscribeInfo()26NotificationSubscribeInfo::NotificationSubscribeInfo() 27 {} 28 ~NotificationSubscribeInfo()29NotificationSubscribeInfo::~NotificationSubscribeInfo() 30 {} 31 NotificationSubscribeInfo(const NotificationSubscribeInfo & subscribeInfo)32NotificationSubscribeInfo::NotificationSubscribeInfo(const NotificationSubscribeInfo &subscribeInfo) 33 { 34 appNames_ = subscribeInfo.GetAppNames(); 35 } 36 AddAppName(const std::string appName)37void NotificationSubscribeInfo::AddAppName(const std::string appName) 38 { 39 appNames_.push_back(appName); 40 } 41 AddAppNames(const std::vector<std::string> & appNames)42void NotificationSubscribeInfo::AddAppNames(const std::vector<std::string> &appNames) 43 { 44 appNames_.insert(appNames_.end(), appNames.begin(), appNames.end()); 45 } 46 GetAppNames() const47std::vector<std::string> NotificationSubscribeInfo::GetAppNames() const 48 { 49 return appNames_; 50 } 51 AddAppUserId(const int32_t userId)52void NotificationSubscribeInfo::AddAppUserId(const int32_t userId) 53 { 54 userId_ = userId; 55 } 56 GetAppUserId() const57int32_t NotificationSubscribeInfo::GetAppUserId() const 58 { 59 return userId_; 60 } 61 Marshalling(Parcel & parcel) const62bool NotificationSubscribeInfo::Marshalling(Parcel &parcel) const 63 { 64 // write appNames_ 65 if (!parcel.WriteStringVector(appNames_)) { 66 ANS_LOGE("Can't write appNames_"); 67 return false; 68 } 69 return true; 70 } 71 Unmarshalling(Parcel & parcel)72NotificationSubscribeInfo *NotificationSubscribeInfo::Unmarshalling(Parcel &parcel) 73 { 74 NotificationSubscribeInfo *info = new (std::nothrow) NotificationSubscribeInfo(); 75 if (info && !info->ReadFromParcel(parcel)) { 76 delete info; 77 info = nullptr; 78 } 79 80 return info; 81 } 82 ReadFromParcel(Parcel & parcel)83bool NotificationSubscribeInfo::ReadFromParcel(Parcel &parcel) 84 { 85 parcel.ReadStringVector(&appNames_); 86 return true; 87 } 88 Dump()89std::string NotificationSubscribeInfo::Dump() 90 { 91 std::string appNames = ""; 92 for (auto name : appNames_) { 93 appNames += name; 94 appNames += ", "; 95 } 96 return "NotificationSubscribeInfo{ " 97 "appNames = [" + appNames + "]" + 98 " }"; 99 } 100 } // namespace Notification 101 } // namespace OHOS 102