13c3173acSopenharmony_ci 23c3173acSopenharmony_ci/* 33c3173acSopenharmony_ci* Copyright (c) 2024 Huawei Device Co., Ltd. 43c3173acSopenharmony_ci* Licensed under the Apache License, Version 2.0 (the "License"); 53c3173acSopenharmony_ci* you may not use this file except in compliance with the License. 63c3173acSopenharmony_ci* You may obtain a copy of the License at 73c3173acSopenharmony_ci* 83c3173acSopenharmony_ci* http://www.apache.org/licenses/LICENSE-2.0 93c3173acSopenharmony_ci* 103c3173acSopenharmony_ci* Unless required by applicable law or agreed to in writing, software 113c3173acSopenharmony_ci* distributed under the License is distributed on an "AS IS" BASIS, 123c3173acSopenharmony_ci* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133c3173acSopenharmony_ci* See the License for the specific language governing permissions and 143c3173acSopenharmony_ci* limitations under the License. 153c3173acSopenharmony_ci*/ 163c3173acSopenharmony_ci#include "qos.h" 173c3173acSopenharmony_ci#include "inner_api/qos.h" 183c3173acSopenharmony_ci#include <unistd.h> 193c3173acSopenharmony_ci#include <string> 203c3173acSopenharmony_ci#include <unordered_map> 213c3173acSopenharmony_ci 223c3173acSopenharmony_cistatic constexpr int ERROR_NUM = -1; 233c3173acSopenharmony_ci 243c3173acSopenharmony_ciusing namespace OHOS::QOS; 253c3173acSopenharmony_ciusing namespace std; 263c3173acSopenharmony_ci 273c3173acSopenharmony_ciint OH_QoS_SetThreadQoS(QoS_Level level) 283c3173acSopenharmony_ci{ 293c3173acSopenharmony_ci if (level < QOS_BACKGROUND || level > QOS_USER_INTERACTIVE) { 303c3173acSopenharmony_ci return ERROR_NUM; 313c3173acSopenharmony_ci } 323c3173acSopenharmony_ci return SetThreadQos(static_cast<QosLevel>(level)); 333c3173acSopenharmony_ci} 343c3173acSopenharmony_ci 353c3173acSopenharmony_ciint OH_QoS_ResetThreadQoS(void) 363c3173acSopenharmony_ci{ 373c3173acSopenharmony_ci return ResetThreadQos(); 383c3173acSopenharmony_ci} 393c3173acSopenharmony_ci 403c3173acSopenharmony_ciint OH_QoS_GetThreadQoS(QoS_Level *level) 413c3173acSopenharmony_ci{ 423c3173acSopenharmony_ci if (level == nullptr) { 433c3173acSopenharmony_ci return ERROR_NUM; 443c3173acSopenharmony_ci } 453c3173acSopenharmony_ci QosLevel qosLevel; 463c3173acSopenharmony_ci int ret = GetThreadQos(qosLevel); 473c3173acSopenharmony_ci if (ret < 0) { 483c3173acSopenharmony_ci return ERROR_NUM; 493c3173acSopenharmony_ci } 503c3173acSopenharmony_ci if (static_cast<int>(qosLevel) < QoS_Level::QOS_BACKGROUND || 513c3173acSopenharmony_ci static_cast<int>(qosLevel) > QoS_Level::QOS_USER_INTERACTIVE) { 523c3173acSopenharmony_ci return ERROR_NUM; 533c3173acSopenharmony_ci } 543c3173acSopenharmony_ci *level = static_cast<QoS_Level>(qosLevel); 553c3173acSopenharmony_ci return 0; 563c3173acSopenharmony_ci}