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 21 namespace OHOS::NetManagerStandard { 22 enum NetConnectionType { 23 PARAMETER_ZERO = 0, 24 PARAMETER_SPECIFIER, 25 PARAMETER_TIMEOUT, 26 PARAMETER_ERROR, 27 }; 28 29 class ConnectionModule final { 30 public: 31 static constexpr const char *FUNCTION_GET_DEFAULT_NET = "getDefaultNet"; 32 static constexpr const char *FUNCTION_GET_DEFAULT_NET_SYNC = "getDefaultNetSync"; 33 static constexpr const char *FUNCTION_HAS_DEFAULT_NET = "hasDefaultNet"; 34 static constexpr const char *FUNCTION_HAS_DEFAULT_NET_SYNC = "hasDefaultNetSync"; 35 static constexpr const char *FUNCTION_IS_DEFAULT_NET_METERED = "isDefaultNetMetered"; 36 static constexpr const char *FUNCTION_IS_DEFAULT_NET_METERED_SYNC = "isDefaultNetMeteredSync"; 37 static constexpr const char *FUNCTION_GET_NET_CAPABILITIES = "getNetCapabilities"; 38 static constexpr const char *FUNCTION_GET_NET_CAPABILITIES_SYNC = "getNetCapabilitiesSync"; 39 static constexpr const char *FUNCTION_GET_CONNECTION_PROPERTIES = "getConnectionProperties"; 40 static constexpr const char *FUNCTION_GET_CONNECTION_PROPERTIES_SYNC = "getConnectionPropertiesSync"; 41 static constexpr const char *FUNCTION_CREATE_NET_CONNECTION = "createNetConnection"; 42 static constexpr const char *FUNCTION_GET_ADDRESSES_BY_NAME = "getAddressesByName"; 43 static constexpr const char *FUNCTION_GET_ALL_NETS = "getAllNets"; 44 static constexpr const char *FUNCTION_GET_ALL_NETS_SYNC = "getAllNetsSync"; 45 static constexpr const char *FUNCTION_ENABLE_AIRPLANE_MODE = "enableAirplaneMode"; 46 static constexpr const char *FUNCTION_DISABLE_AIRPLANE_MODE = "disableAirplaneMode"; 47 static constexpr const char *FUNCTION_REPORT_NET_CONNECTED = "reportNetConnected"; 48 static constexpr const char *FUNCTION_REPORT_NET_DISCONNECTED = "reportNetDisconnected"; 49 static constexpr const char *FUNCTION_GET_DEFAULT_HTTP_PROXY = "getDefaultHttpProxy"; 50 static constexpr const char *FUNCTION_GET_GLOBAL_HTTP_PROXY = "getGlobalHttpProxy"; 51 static constexpr const char *FUNCTION_SET_GLOBAL_HTTP_PROXY = "setGlobalHttpProxy"; 52 static constexpr const char *FUNCTION_GET_APP_NET = "getAppNet"; 53 static constexpr const char *FUNCTION_GET_APP_NET_SYNC = "getAppNetSync"; 54 static constexpr const char *FUNCTION_SET_APP_NET = "setAppNet"; 55 static constexpr const char *INTERFACE_NET_CONNECTION = "NetConnection"; 56 static constexpr const char *INTERFACE_NET_CAP = "NetCap"; 57 static constexpr const char *INTERFACE_NET_BEAR_TYPE = "NetBearType"; 58 59 static napi_value InitConnectionModule(napi_env env, napi_value exports); 60 61 class NetHandleInterface final { 62 public: 63 static constexpr const char *PROPERTY_NET_ID = "netId"; 64 static constexpr const char *FUNCTION_GET_ADDRESSES_BY_NAME = "getAddressesByName"; 65 static constexpr const char *FUNCTION_GET_ADDRESS_BY_NAME = "getAddressByName"; 66 static constexpr const char *FUNCTION_BIND_SOCKET = "bindSocket"; 67 68 static napi_value GetAddressesByName(napi_env env, napi_callback_info info); 69 static napi_value GetAddressByName(napi_env env, napi_callback_info info); 70 static napi_value BindSocket(napi_env env, napi_callback_info info); 71 }; 72 73 class NetConnectionInterface final { 74 public: 75 static constexpr const char *FUNCTION_ON = "on"; 76 static constexpr const char *FUNCTION_REGISTER = "register"; 77 static constexpr const char *FUNCTION_UNREGISTER = "unregister"; 78 79 static napi_value On(napi_env env, napi_callback_info info); 80 static napi_value Register(napi_env env, napi_callback_info info); 81 static napi_value Unregister(napi_env env, napi_callback_info info); 82 }; 83 84 private: 85 static void InitProperties(napi_env env, napi_value exports); 86 87 static napi_value GetDefaultNet(napi_env env, napi_callback_info info); 88 static napi_value GetDefaultNetSync(napi_env env, napi_callback_info info); 89 static napi_value CreateNetConnection(napi_env env, napi_callback_info info); 90 static napi_value GetAddressesByName(napi_env env, napi_callback_info info); 91 static napi_value HasDefaultNet(napi_env env, napi_callback_info info); 92 static napi_value HasDefaultNetSync(napi_env env, napi_callback_info info); 93 static napi_value IsDefaultNetMetered(napi_env env, napi_callback_info info); 94 static napi_value IsDefaultNetMeteredSync(napi_env env, napi_callback_info info); 95 static napi_value GetNetCapabilities(napi_env env, napi_callback_info info); 96 static napi_value GetNetCapabilitiesSync(napi_env env, napi_callback_info info); 97 static napi_value GetConnectionProperties(napi_env env, napi_callback_info info); 98 static napi_value GetConnectionPropertiesSync(napi_env env, napi_callback_info info); 99 static napi_value GetAllNets(napi_env env, napi_callback_info info); 100 static napi_value GetAllNetsSync(napi_env env, napi_callback_info info); 101 static napi_value EnableAirplaneMode(napi_env env, napi_callback_info info); 102 static napi_value DisableAirplaneMode(napi_env env, napi_callback_info info); 103 static napi_value ReportNetConnected(napi_env env, napi_callback_info info); 104 static napi_value ReportNetDisconnected(napi_env env, napi_callback_info info); 105 static napi_value GetDefaultHttpProxy(napi_env env, napi_callback_info info); 106 static napi_value GetGlobalHttpProxy(napi_env env, napi_callback_info info); 107 static napi_value SetGlobalHttpProxy(napi_env env, napi_callback_info info); 108 static napi_value GetAppNet(napi_env env, napi_callback_info info); 109 static napi_value GetAppNetSync(napi_env env, napi_callback_info info); 110 static napi_value SetAppNet(napi_env env, napi_callback_info info); 111 }; 112 } // namespace OHOS::NetManagerStandard 113 114 #endif /* COMMUNICATIONNETMANAGERBASE_CONNECTION_MODULE_H */ 115