1 /* 2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef COMMUNICATIONNETMANAGERBASE_CONNECTION_MODULE_H 17 #define COMMUNICATIONNETMANAGERBASE_CONNECTION_MODULE_H 18 19 #include <napi/native_api.h> 20 #include <initializer_list> 21 22 namespace OHOS::NetManagerStandard { 23 enum NetConnectionType { 24 PARAMETER_ZERO = 0, 25 PARAMETER_SPECIFIER, 26 PARAMETER_TIMEOUT, 27 PARAMETER_ERROR, 28 }; 29 30 class ConnectionModule final { 31 public: 32 static constexpr const char *FUNCTION_GET_DEFAULT_NET = "getDefaultNet"; 33 static constexpr const char *FUNCTION_GET_DEFAULT_NET_SYNC = "getDefaultNetSync"; 34 static constexpr const char *FUNCTION_HAS_DEFAULT_NET = "hasDefaultNet"; 35 static constexpr const char *FUNCTION_HAS_DEFAULT_NET_SYNC = "hasDefaultNetSync"; 36 static constexpr const char *FUNCTION_IS_DEFAULT_NET_METERED = "isDefaultNetMetered"; 37 static constexpr const char *FUNCTION_IS_DEFAULT_NET_METERED_SYNC = "isDefaultNetMeteredSync"; 38 static constexpr const char *FUNCTION_GET_NET_CAPABILITIES = "getNetCapabilities"; 39 static constexpr const char *FUNCTION_GET_NET_CAPABILITIES_SYNC = "getNetCapabilitiesSync"; 40 static constexpr const char *FUNCTION_GET_CONNECTION_PROPERTIES = "getConnectionProperties"; 41 static constexpr const char *FUNCTION_GET_CONNECTION_PROPERTIES_SYNC = "getConnectionPropertiesSync"; 42 static constexpr const char *FUNCTION_CREATE_NET_CONNECTION = "createNetConnection"; 43 static constexpr const char *FUNCTION_GET_ADDRESSES_BY_NAME = "getAddressesByName"; 44 static constexpr const char *FUNCTION_GET_ALL_NETS = "getAllNets"; 45 static constexpr const char *FUNCTION_GET_ALL_NETS_SYNC = "getAllNetsSync"; 46 static constexpr const char *FUNCTION_ENABLE_AIRPLANE_MODE = "enableAirplaneMode"; 47 static constexpr const char *FUNCTION_DISABLE_AIRPLANE_MODE = "disableAirplaneMode"; 48 static constexpr const char *FUNCTION_REPORT_NET_CONNECTED = "reportNetConnected"; 49 static constexpr const char *FUNCTION_REPORT_NET_DISCONNECTED = "reportNetDisconnected"; 50 static constexpr const char *FUNCTION_GET_DEFAULT_HTTP_PROXY = "getDefaultHttpProxy"; 51 static constexpr const char *FUNCTION_GET_GLOBAL_HTTP_PROXY = "getGlobalHttpProxy"; 52 static constexpr const char *FUNCTION_SET_GLOBAL_HTTP_PROXY = "setGlobalHttpProxy"; 53 static constexpr const char *FUNCTION_SET_CUSTOM_DNS_RULE = "addCustomDnsRule"; 54 static constexpr const char *FUNCTION_DELETE_CUSTOM_DNS_RULE = "removeCustomDnsRule"; 55 static constexpr const char *FUNCTION_DELETE_CUSTOM_DNS_RULES = "clearCustomDnsRules"; 56 static constexpr const char *FUNCTION_SET_APP_HTTP_PROXY = "setAppHttpProxy"; 57 static constexpr const char *FUNCTION_GET_APP_NET = "getAppNet"; 58 static constexpr const char *FUNCTION_GET_APP_NET_SYNC = "getAppNetSync"; 59 static constexpr const char *FUNCTION_SET_APP_NET = "setAppNet"; 60 static constexpr const char *INTERFACE_NET_CONNECTION = "NetConnection"; 61 static constexpr const char *INTERFACE_NET_CAP = "NetCap"; 62 static constexpr const char *INTERFACE_NET_BEAR_TYPE = "NetBearType"; 63 static constexpr const char *INTERFACE_PROXY_MODE_TYPE = "ProxyMode"; 64 static constexpr const char *FUNCTION_FACTORY_RESET_NETWORK = "factoryReset"; 65 static constexpr const char *FUNCTION_FACTORY_RESET_NETWORK_SYNC = "factoryResetNetworkSync"; 66 static constexpr const char *FUNCTION_SET_PAC_URL = "setPacUrl"; 67 static constexpr const char *FUNCTION_GET_PAC_URL = "getPacUrl"; 68 static constexpr const char *FUNCTION_SET_FILE_PAC_URL = "setPacFileUrl"; 69 static constexpr const char *FUNCTION_GET_FILE_PAC_URL = "getPacFileUrl"; 70 static constexpr const char *FUNCTION_GET_PROXY_MODE = "getProxyMode"; 71 static constexpr const char *FUNCTION_SET_PROXY_MODE = "setProxyMode"; 72 static constexpr const char *FUNCTION_FIND_PROXY_FOR_URL = "findProxyForUrl"; 73 static constexpr const char *FUNCTION_SET_INTERFACE_UP = "setInterfaceUp"; 74 static constexpr const char *FUNCTION_SET_INTERFACE_IP_ADDRESS = "setNetInterfaceIpAddress"; 75 static constexpr const char *FUNCTION_ADD_NETWORK_ROUTE = "addNetworkRoute"; 76 static constexpr const char *FUNCTION_CREATE_NET_INTERFACE = "createNetInterface"; 77 static constexpr const char *INTERFACE_NET_INTERFACE = "NetInterface"; 78 static constexpr const char *FUNCTION_GET_INTERFACE_CONFIG = "getNetInterfaceConfiguration"; 79 static constexpr const char *FUNCTION_REGISTER_NET_SUPPLIER = "registerNetSupplier"; 80 static constexpr const char *FUNCTION_UNREGISTER_NET_SUPPLIER = "unregisterNetSupplier"; 81 static constexpr const char *FUNCTION_SET_NET_EXT_ATTRIBUTE = "setNetExtAttribute"; 82 static constexpr const char *FUNCTION_GET_NET_EXT_ATTRIBUTE = "getNetExtAttribute"; 83 static constexpr const char *FUNCTION_SET_NET_EXT_ATTRIBUTE_SYNC = "setNetExtAttributeSync"; 84 static constexpr const char *FUNCTION_GET_NET_EXT_ATTRIBUTE_SYNC = "getNetExtAttributeSync"; 85 86 static napi_value InitConnectionModule(napi_env env, napi_value exports); 87 static std::initializer_list<napi_property_descriptor> createPropertyList(); 88 89 class NetConnectionInterface final { 90 public: 91 static constexpr const char *FUNCTION_ON = "on"; 92 static constexpr const char *FUNCTION_REGISTER = "register"; 93 static constexpr const char *FUNCTION_UNREGISTER = "unregister"; 94 95 static napi_value On(napi_env env, napi_callback_info info); 96 static napi_value Register(napi_env env, napi_callback_info info); 97 static napi_value Unregister(napi_env env, napi_callback_info info); 98 }; 99 100 class NetInterfaceInterface final { 101 public: 102 static constexpr const char *FUNCTION_ON = "on"; 103 static constexpr const char *FUNCTION_REGISTER = "register"; 104 static constexpr const char *FUNCTION_UNREGISTER = "unregister"; 105 106 static napi_value On(napi_env env, napi_callback_info info); 107 static napi_value Register(napi_env env, napi_callback_info info); 108 static napi_value Unregister(napi_env env, napi_callback_info info); 109 }; 110 111 private: 112 static void InitClasses(napi_env env, napi_value exports); 113 static void InitProperties(napi_env env, napi_value exports); 114 115 static napi_value GetDefaultNet(napi_env env, napi_callback_info info); 116 static napi_value GetDefaultNetSync(napi_env env, napi_callback_info info); 117 static napi_value CreateNetConnection(napi_env env, napi_callback_info info); 118 static napi_value GetAddressesByName(napi_env env, napi_callback_info info); 119 static napi_value HasDefaultNet(napi_env env, napi_callback_info info); 120 static napi_value HasDefaultNetSync(napi_env env, napi_callback_info info); 121 static napi_value IsDefaultNetMetered(napi_env env, napi_callback_info info); 122 static napi_value IsDefaultNetMeteredSync(napi_env env, napi_callback_info info); 123 static napi_value GetNetCapabilities(napi_env env, napi_callback_info info); 124 static napi_value GetProxyMode(napi_env env, napi_callback_info info); 125 static napi_value SetProxyMode(napi_env env, napi_callback_info info); 126 static napi_value GetNetCapabilitiesSync(napi_env env, napi_callback_info info); 127 static napi_value GetConnectionProperties(napi_env env, napi_callback_info info); 128 static napi_value GetConnectionPropertiesSync(napi_env env, napi_callback_info info); 129 static napi_value GetAllNets(napi_env env, napi_callback_info info); 130 static napi_value GetAllNetsSync(napi_env env, napi_callback_info info); 131 static napi_value EnableAirplaneMode(napi_env env, napi_callback_info info); 132 static napi_value DisableAirplaneMode(napi_env env, napi_callback_info info); 133 static napi_value ReportNetConnected(napi_env env, napi_callback_info info); 134 static napi_value ReportNetDisconnected(napi_env env, napi_callback_info info); 135 static napi_value GetDefaultHttpProxy(napi_env env, napi_callback_info info); 136 static napi_value GetGlobalHttpProxy(napi_env env, napi_callback_info info); 137 static napi_value SetGlobalHttpProxy(napi_env env, napi_callback_info info); 138 static napi_value AddCustomDnsRule(napi_env env, napi_callback_info info); 139 static napi_value RemoveCustomDnsRule(napi_env env, napi_callback_info info); 140 static napi_value ClearCustomDnsRules(napi_env env, napi_callback_info info); 141 static napi_value SetAppHttpProxy(napi_env env, napi_callback_info info); 142 static napi_value GetAppNet(napi_env env, napi_callback_info info); 143 static napi_value GetAppNetSync(napi_env env, napi_callback_info info); 144 static napi_value SetAppNet(napi_env env, napi_callback_info info); 145 static napi_value FactoryResetNetwork(napi_env env, napi_callback_info info); 146 static napi_value FactoryResetNetworkSync(napi_env env, napi_callback_info info); 147 static napi_value SetPacUrl(napi_env env, napi_callback_info info); 148 static napi_value SetPacFileUrl(napi_env env, napi_callback_info info); 149 static napi_value GetPacUrl(napi_env env, napi_callback_info info); 150 static napi_value GetPacFileUrl(napi_env env, napi_callback_info info); 151 static napi_value FindProxyForUrl(napi_env env, napi_callback_info info); 152 static napi_value SetInterfaceUp(napi_env env, napi_callback_info info); 153 static napi_value SetNetInterfaceIpAddress(napi_env env, napi_callback_info info); 154 static napi_value AddNetworkRoute(napi_env env, napi_callback_info info); 155 static napi_value CreateNetInterface(napi_env env, napi_callback_info info); 156 static napi_value GetNetInterfaceConfiguration(napi_env env, napi_callback_info info); 157 static napi_value RegisterNetSupplier(napi_env env, napi_callback_info info); 158 static napi_value UnregisterNetSupplier(napi_env env, napi_callback_info info); 159 static napi_value GetNetExtAttribute(napi_env env, napi_callback_info info); 160 static napi_value SetNetExtAttribute(napi_env env, napi_callback_info info); 161 static napi_value GetNetExtAttributeSync(napi_env env, napi_callback_info info); 162 static napi_value SetNetExtAttributeSync(napi_env env, napi_callback_info info); 163 }; 164 } // namespace OHOS::NetManagerStandard 165 166 #endif /* COMMUNICATIONNETMANAGERBASE_CONNECTION_MODULE_H */ 167