1794c9f46Sopenharmony_ci/* 2794c9f46Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3794c9f46Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4794c9f46Sopenharmony_ci * you may not use this file except in compliance with the License. 5794c9f46Sopenharmony_ci * You may obtain a copy of the License at 6794c9f46Sopenharmony_ci * 7794c9f46Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8794c9f46Sopenharmony_ci * 9794c9f46Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10794c9f46Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11794c9f46Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12794c9f46Sopenharmony_ci * See the License for the specific language governing permissions and 13794c9f46Sopenharmony_ci * limitations under the License. 14794c9f46Sopenharmony_ci */ 15794c9f46Sopenharmony_ci 16794c9f46Sopenharmony_ci#include "task.h" 17794c9f46Sopenharmony_ci 18794c9f46Sopenharmony_ci#include "constants.h" 19794c9f46Sopenharmony_ci#include "dh_utils_tool.h" 20794c9f46Sopenharmony_ci 21794c9f46Sopenharmony_cinamespace OHOS { 22794c9f46Sopenharmony_cinamespace DistributedHardware { 23794c9f46Sopenharmony_ciTask::Task(const std::string &networkId, const std::string &uuid, const std::string &udid, const std::string &dhId, 24794c9f46Sopenharmony_ci const DHType dhType) : id_(DH_TASK_NAME_PREFIX + GetRandomID()), networkId_(networkId), uuid_(uuid), udid_(udid), 25794c9f46Sopenharmony_ci dhId_(dhId), dhType_(dhType) 26794c9f46Sopenharmony_ci{} 27794c9f46Sopenharmony_ci 28794c9f46Sopenharmony_ciTask::~Task() 29794c9f46Sopenharmony_ci{ 30794c9f46Sopenharmony_ci this->childrenTasks_.clear(); 31794c9f46Sopenharmony_ci} 32794c9f46Sopenharmony_ci 33794c9f46Sopenharmony_cistd::string Task::GetId() 34794c9f46Sopenharmony_ci{ 35794c9f46Sopenharmony_ci return this->id_; 36794c9f46Sopenharmony_ci} 37794c9f46Sopenharmony_ci 38794c9f46Sopenharmony_cistd::string Task::GetNetworkId() 39794c9f46Sopenharmony_ci{ 40794c9f46Sopenharmony_ci return this->networkId_; 41794c9f46Sopenharmony_ci} 42794c9f46Sopenharmony_ci 43794c9f46Sopenharmony_cistd::string Task::GetUUID() 44794c9f46Sopenharmony_ci{ 45794c9f46Sopenharmony_ci return this->uuid_; 46794c9f46Sopenharmony_ci} 47794c9f46Sopenharmony_ci 48794c9f46Sopenharmony_cistd::string Task::GetUDID() 49794c9f46Sopenharmony_ci{ 50794c9f46Sopenharmony_ci return this->udid_; 51794c9f46Sopenharmony_ci} 52794c9f46Sopenharmony_ci 53794c9f46Sopenharmony_cistd::string Task::GetDhId() 54794c9f46Sopenharmony_ci{ 55794c9f46Sopenharmony_ci return this->dhId_; 56794c9f46Sopenharmony_ci} 57794c9f46Sopenharmony_ci 58794c9f46Sopenharmony_ciDHType Task::GetDhType() 59794c9f46Sopenharmony_ci{ 60794c9f46Sopenharmony_ci return this->dhType_; 61794c9f46Sopenharmony_ci} 62794c9f46Sopenharmony_ci 63794c9f46Sopenharmony_ciTaskType Task::GetTaskType() 64794c9f46Sopenharmony_ci{ 65794c9f46Sopenharmony_ci return this->taskType_; 66794c9f46Sopenharmony_ci} 67794c9f46Sopenharmony_ci 68794c9f46Sopenharmony_civoid Task::SetTaskType(TaskType taskType) 69794c9f46Sopenharmony_ci{ 70794c9f46Sopenharmony_ci this->taskType_ = taskType; 71794c9f46Sopenharmony_ci} 72794c9f46Sopenharmony_ci 73794c9f46Sopenharmony_civoid Task::SetTaskSteps(std::vector<TaskStep> taskSteps) 74794c9f46Sopenharmony_ci{ 75794c9f46Sopenharmony_ci this->taskSteps_.swap(taskSteps); 76794c9f46Sopenharmony_ci} 77794c9f46Sopenharmony_ci 78794c9f46Sopenharmony_ciconst std::vector<TaskStep> Task::GetTaskSteps() 79794c9f46Sopenharmony_ci{ 80794c9f46Sopenharmony_ci return this->taskSteps_; 81794c9f46Sopenharmony_ci} 82794c9f46Sopenharmony_ci 83794c9f46Sopenharmony_ciTaskState Task::GetTaskState() 84794c9f46Sopenharmony_ci{ 85794c9f46Sopenharmony_ci return this->taskState_; 86794c9f46Sopenharmony_ci} 87794c9f46Sopenharmony_ci 88794c9f46Sopenharmony_civoid Task::SetTaskState(TaskState taskState) 89794c9f46Sopenharmony_ci{ 90794c9f46Sopenharmony_ci this->taskState_ = taskState; 91794c9f46Sopenharmony_ci} 92794c9f46Sopenharmony_ci 93794c9f46Sopenharmony_civoid Task::AddChildrenTask(std::shared_ptr<Task> childrenTask) 94794c9f46Sopenharmony_ci{ 95794c9f46Sopenharmony_ci std::lock_guard<std::mutex> lock(taskMtx_); 96794c9f46Sopenharmony_ci this->childrenTasks_.push_back(childrenTask); 97794c9f46Sopenharmony_ci} 98794c9f46Sopenharmony_ci 99794c9f46Sopenharmony_ciconst std::vector<std::shared_ptr<Task>> Task::GetChildrenTasks() 100794c9f46Sopenharmony_ci{ 101794c9f46Sopenharmony_ci std::lock_guard<std::mutex> lock(taskMtx_); 102794c9f46Sopenharmony_ci return this->childrenTasks_; 103794c9f46Sopenharmony_ci} 104794c9f46Sopenharmony_ci 105794c9f46Sopenharmony_ciconst std::weak_ptr<Task> Task::GetFatherTask() 106794c9f46Sopenharmony_ci{ 107794c9f46Sopenharmony_ci return this->fatherTask_; 108794c9f46Sopenharmony_ci} 109794c9f46Sopenharmony_ci 110794c9f46Sopenharmony_civoid Task::SetFatherTask(std::shared_ptr<Task> fatherTask) 111794c9f46Sopenharmony_ci{ 112794c9f46Sopenharmony_ci this->fatherTask_ = fatherTask; 113794c9f46Sopenharmony_ci} 114794c9f46Sopenharmony_ci} // namespace DistributedHardware 115794c9f46Sopenharmony_ci} // namespace OHOS 116