1686862fbSopenharmony_ci/* 2686862fbSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3686862fbSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4686862fbSopenharmony_ci * you may not use this file except in compliance with the License. 5686862fbSopenharmony_ci * You may obtain a copy of the License at 6686862fbSopenharmony_ci * 7686862fbSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8686862fbSopenharmony_ci * 9686862fbSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10686862fbSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11686862fbSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12686862fbSopenharmony_ci * See the License for the specific language governing permissions and 13686862fbSopenharmony_ci * limitations under the License. 14686862fbSopenharmony_ci */ 15686862fbSopenharmony_ci 16686862fbSopenharmony_ci#include "distributed_operation.h" 17686862fbSopenharmony_ci#include "distributed_operation_builder.h" 18686862fbSopenharmony_ci 19686862fbSopenharmony_cinamespace OHOS { 20686862fbSopenharmony_cinamespace DistributedSchedule { 21686862fbSopenharmony_ciDistributedOperationBuilder::DistributedOperationBuilder() 22686862fbSopenharmony_ci : abilityName_(""), action_(""), bundleName_(""), deviceId_(""), flags_(0), uri_("") 23686862fbSopenharmony_ci{ 24686862fbSopenharmony_ci entities_.clear(); 25686862fbSopenharmony_ci} 26686862fbSopenharmony_ci 27686862fbSopenharmony_ciDistributedOperationBuilder::~DistributedOperationBuilder() 28686862fbSopenharmony_ci{} 29686862fbSopenharmony_ci 30686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithAbilityName(const std::string& abilityName) 31686862fbSopenharmony_ci{ 32686862fbSopenharmony_ci abilityName_ = abilityName; 33686862fbSopenharmony_ci return *this; 34686862fbSopenharmony_ci} 35686862fbSopenharmony_ci 36686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithBundleName(const std::string& bundleName) 37686862fbSopenharmony_ci{ 38686862fbSopenharmony_ci bundleName_ = bundleName; 39686862fbSopenharmony_ci return *this; 40686862fbSopenharmony_ci} 41686862fbSopenharmony_ci 42686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithDeviceId(const std::string& deviceID) 43686862fbSopenharmony_ci{ 44686862fbSopenharmony_ci deviceId_ = deviceID; 45686862fbSopenharmony_ci return *this; 46686862fbSopenharmony_ci} 47686862fbSopenharmony_ci 48686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithAction(const std::string& action) 49686862fbSopenharmony_ci{ 50686862fbSopenharmony_ci action_ = action; 51686862fbSopenharmony_ci return *this; 52686862fbSopenharmony_ci} 53686862fbSopenharmony_ci 54686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithEntities(const std::vector<std::string>& entities) 55686862fbSopenharmony_ci{ 56686862fbSopenharmony_ci entities_ = entities; 57686862fbSopenharmony_ci return *this; 58686862fbSopenharmony_ci} 59686862fbSopenharmony_ci 60686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithFlags(unsigned int flags) 61686862fbSopenharmony_ci{ 62686862fbSopenharmony_ci flags_ = flags; 63686862fbSopenharmony_ci return *this; 64686862fbSopenharmony_ci} 65686862fbSopenharmony_ci 66686862fbSopenharmony_ciDistributedOperationBuilder& DistributedOperationBuilder::WithUri(const Uri& uri) 67686862fbSopenharmony_ci{ 68686862fbSopenharmony_ci uri_ = uri; 69686862fbSopenharmony_ci return *this; 70686862fbSopenharmony_ci} 71686862fbSopenharmony_ci 72686862fbSopenharmony_cistd::shared_ptr<DistributedOperation> DistributedOperationBuilder::build() 73686862fbSopenharmony_ci{ 74686862fbSopenharmony_ci std::shared_ptr<DistributedOperation> dOperation = std::make_shared<DistributedOperation>(); 75686862fbSopenharmony_ci dOperation->abilityName_ = abilityName_; 76686862fbSopenharmony_ci dOperation->bundleName_ = bundleName_; 77686862fbSopenharmony_ci dOperation->deviceId_ = deviceId_; 78686862fbSopenharmony_ci dOperation->action_ = action_; 79686862fbSopenharmony_ci dOperation->entities_ = entities_; 80686862fbSopenharmony_ci dOperation->flags_ = flags_; 81686862fbSopenharmony_ci dOperation->uri_ = uri_; 82686862fbSopenharmony_ci 83686862fbSopenharmony_ci return dOperation; 84686862fbSopenharmony_ci} 85686862fbSopenharmony_ci} // namespace DistributedSchedule 86686862fbSopenharmony_ci} // namespace OHOS