14d6c458bSopenharmony_ci/* 24d6c458bSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 34d6c458bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d6c458bSopenharmony_ci * you may not use this file except in compliance with the License. 54d6c458bSopenharmony_ci * You may obtain a copy of the License at 64d6c458bSopenharmony_ci * 74d6c458bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d6c458bSopenharmony_ci * 94d6c458bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d6c458bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d6c458bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d6c458bSopenharmony_ci * See the License for the specific language governing permissions and 134d6c458bSopenharmony_ci * limitations under the License. 144d6c458bSopenharmony_ci */ 154d6c458bSopenharmony_ci 164d6c458bSopenharmony_ci#include "task_queue.h" 174d6c458bSopenharmony_ci 184d6c458bSopenharmony_cinamespace Commonlibrary::Concurrent::TaskPoolModule { 194d6c458bSopenharmony_civoid ExecuteQueue::EnqueueTaskId(uint64_t taskId) 204d6c458bSopenharmony_ci{ 214d6c458bSopenharmony_ci tasks_.emplace_back(taskId); 224d6c458bSopenharmony_ci} 234d6c458bSopenharmony_ci 244d6c458bSopenharmony_cibool ExecuteQueue::EraseWaitingTaskId(uint64_t taskId) 254d6c458bSopenharmony_ci{ 264d6c458bSopenharmony_ci auto it = std::find(tasks_.begin(), tasks_.end(), taskId); 274d6c458bSopenharmony_ci if (it != tasks_.end()) { 284d6c458bSopenharmony_ci tasks_.erase(it); 294d6c458bSopenharmony_ci return true; 304d6c458bSopenharmony_ci } 314d6c458bSopenharmony_ci return false; 324d6c458bSopenharmony_ci} 334d6c458bSopenharmony_ci 344d6c458bSopenharmony_ciuint64_t ExecuteQueue::DequeueTaskId() 354d6c458bSopenharmony_ci{ 364d6c458bSopenharmony_ci if (!tasks_.empty()) { 374d6c458bSopenharmony_ci uint64_t taskId = tasks_.front(); 384d6c458bSopenharmony_ci tasks_.pop_front(); 394d6c458bSopenharmony_ci return taskId; 404d6c458bSopenharmony_ci } 414d6c458bSopenharmony_ci return 0; 424d6c458bSopenharmony_ci} 434d6c458bSopenharmony_ci 444d6c458bSopenharmony_cibool ExecuteQueue::IsEmpty() const 454d6c458bSopenharmony_ci{ 464d6c458bSopenharmony_ci return tasks_.empty(); 474d6c458bSopenharmony_ci} 484d6c458bSopenharmony_ci} // namespace Commonlibrary::Concurrent::TaskPoolModule