/* * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef THR_TASK_CONTAINER_H #define THR_TASK_CONTAINER_H #include #include #include #include "ITask.h" class ThrTaskContainer { public: void StartLoop(const std::string& threadName); void StopLoop(); void PostTask(ITask* task); void Entry(const std::string& threadName); private: bool IsTaskOverLimit(); const std::vector::size_type maxTaskSize = 50; std::vector tasks; std::mutex mut; std::condition_variable cv; }; #endif