1b1b8bc3fSopenharmony_ci/* 2b1b8bc3fSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3b1b8bc3fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4b1b8bc3fSopenharmony_ci * you may not use this file except in compliance with the License. 5b1b8bc3fSopenharmony_ci * You may obtain a copy of the License at 6b1b8bc3fSopenharmony_ci * 7b1b8bc3fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8b1b8bc3fSopenharmony_ci * 9b1b8bc3fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10b1b8bc3fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11b1b8bc3fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12b1b8bc3fSopenharmony_ci * See the License for the specific language governing permissions and 13b1b8bc3fSopenharmony_ci * limitations under the License. 14b1b8bc3fSopenharmony_ci */ 15b1b8bc3fSopenharmony_ci 16b1b8bc3fSopenharmony_ci#ifndef NET_CAPS_H 17b1b8bc3fSopenharmony_ci#define NET_CAPS_H 18b1b8bc3fSopenharmony_ci 19b1b8bc3fSopenharmony_ci#include <set> 20b1b8bc3fSopenharmony_ci#include <string> 21b1b8bc3fSopenharmony_ci 22b1b8bc3fSopenharmony_ci#include "net_all_capabilities.h" 23b1b8bc3fSopenharmony_ci 24b1b8bc3fSopenharmony_cinamespace OHOS { 25b1b8bc3fSopenharmony_cinamespace NetManagerStandard { 26b1b8bc3fSopenharmony_ciclass NetCaps { 27b1b8bc3fSopenharmony_cipublic: 28b1b8bc3fSopenharmony_ci NetCaps() = default; 29b1b8bc3fSopenharmony_ci ~NetCaps() = default; 30b1b8bc3fSopenharmony_ci explicit NetCaps(const std::set<NetCap> &caps); 31b1b8bc3fSopenharmony_ci 32b1b8bc3fSopenharmony_ci bool operator==(const NetCaps &netCaps) const; 33b1b8bc3fSopenharmony_ci 34b1b8bc3fSopenharmony_ci /** 35b1b8bc3fSopenharmony_ci * Determine if a NetCap is valid or not 36b1b8bc3fSopenharmony_ci * 37b1b8bc3fSopenharmony_ci * @param cap NetCap to check 38b1b8bc3fSopenharmony_ci * @return bool cap is valid or not 39b1b8bc3fSopenharmony_ci */ 40b1b8bc3fSopenharmony_ci bool IsValidNetCap(NetCap cap); 41b1b8bc3fSopenharmony_ci 42b1b8bc3fSopenharmony_ci /** 43b1b8bc3fSopenharmony_ci * Insert a NetCap 44b1b8bc3fSopenharmony_ci * 45b1b8bc3fSopenharmony_ci * @param cap A NetCap to insert 46b1b8bc3fSopenharmony_ci */ 47b1b8bc3fSopenharmony_ci void InsertNetCap(NetCap cap); 48b1b8bc3fSopenharmony_ci 49b1b8bc3fSopenharmony_ci /** 50b1b8bc3fSopenharmony_ci * Remove a NetCap 51b1b8bc3fSopenharmony_ci * 52b1b8bc3fSopenharmony_ci * @param cap Netcap to remove 53b1b8bc3fSopenharmony_ci */ 54b1b8bc3fSopenharmony_ci void RemoveNetCap(NetCap cap); 55b1b8bc3fSopenharmony_ci 56b1b8bc3fSopenharmony_ci /** 57b1b8bc3fSopenharmony_ci * Determine NetCap exist or not 58b1b8bc3fSopenharmony_ci * 59b1b8bc3fSopenharmony_ci * @param cap Netcap to check 60b1b8bc3fSopenharmony_ci * @return bool cap exist or not 61b1b8bc3fSopenharmony_ci */ 62b1b8bc3fSopenharmony_ci bool HasNetCap(NetCap cap) const; 63b1b8bc3fSopenharmony_ci 64b1b8bc3fSopenharmony_ci /** 65b1b8bc3fSopenharmony_ci * Determine NetCaps exist or not 66b1b8bc3fSopenharmony_ci * 67b1b8bc3fSopenharmony_ci * @param cap Netcaps to check 68b1b8bc3fSopenharmony_ci * @return bool NetCaps exist or not 69b1b8bc3fSopenharmony_ci */ 70b1b8bc3fSopenharmony_ci bool HasNetCaps(const std::set<NetCap> &caps) const; 71b1b8bc3fSopenharmony_ci 72b1b8bc3fSopenharmony_ci /** 73b1b8bc3fSopenharmony_ci * Restorage all Netcap to a std::set<NetCap> 74b1b8bc3fSopenharmony_ci * 75b1b8bc3fSopenharmony_ci * @return std::set<NetCap> with all Netcap 76b1b8bc3fSopenharmony_ci */ 77b1b8bc3fSopenharmony_ci std::set<NetCap> ToSet() const; 78b1b8bc3fSopenharmony_ci 79b1b8bc3fSopenharmony_ciprivate: 80b1b8bc3fSopenharmony_ci uint32_t caps_{0}; 81b1b8bc3fSopenharmony_ci}; 82b1b8bc3fSopenharmony_ci} // namespace NetManagerStandard 83b1b8bc3fSopenharmony_ci} // namespace OHOS 84b1b8bc3fSopenharmony_ci#endif // NET_CAPS_H