• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 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 COMMUNICATIONNETSTACK_SOCKET_MODULE_H
17 #define COMMUNICATIONNETSTACK_SOCKET_MODULE_H
18 
19 #include "napi/native_api.h"
20 
21 namespace OHOS::NetStack {
22 class SocketModuleExports {
23 public:
24     class UDPSocket {
25     public:
26         static constexpr const char *FUNCTION_BIND = "bind";
27         static constexpr const char *FUNCTION_SEND = "send";
28         static constexpr const char *FUNCTION_CLOSE = "close";
29         static constexpr const char *FUNCTION_GET_STATE = "getState";
30         static constexpr const char *FUNCTION_SET_EXTRA_OPTIONS = "setExtraOptions";
31         static constexpr const char *FUNCTION_ON = "on";
32         static constexpr const char *FUNCTION_OFF = "off";
33 
34         static napi_value Bind(napi_env env, napi_callback_info info);
35         static napi_value Send(napi_env env, napi_callback_info info);
36         static napi_value Close(napi_env env, napi_callback_info info);
37         static napi_value GetState(napi_env env, napi_callback_info info);
38         static napi_value SetExtraOptions(napi_env env, napi_callback_info info);
39         static napi_value On(napi_env env, napi_callback_info info);
40         static napi_value Off(napi_env env, napi_callback_info info);
41     };
42 
43     class TCPSocket {
44     public:
45         static constexpr const char *FUNCTION_BIND = "bind";
46         static constexpr const char *FUNCTION_CONNECT = "connect";
47         static constexpr const char *FUNCTION_SEND = "send";
48         static constexpr const char *FUNCTION_CLOSE = "close";
49         static constexpr const char *FUNCTION_GET_REMOTE_ADDRESS = "getRemoteAddress";
50         static constexpr const char *FUNCTION_GET_STATE = "getState";
51         static constexpr const char *FUNCTION_SET_EXTRA_OPTIONS = "setExtraOptions";
52         static constexpr const char *FUNCTION_ON = "on";
53         static constexpr const char *FUNCTION_OFF = "off";
54 
55         static napi_value Bind(napi_env env, napi_callback_info info);
56         static napi_value Connect(napi_env env, napi_callback_info info);
57         static napi_value Send(napi_env env, napi_callback_info info);
58         static napi_value Close(napi_env env, napi_callback_info info);
59         static napi_value GetRemoteAddress(napi_env env, napi_callback_info info);
60         static napi_value GetState(napi_env env, napi_callback_info info);
61         static napi_value SetExtraOptions(napi_env env, napi_callback_info info);
62         static napi_value On(napi_env env, napi_callback_info info);
63         static napi_value Off(napi_env env, napi_callback_info info);
64     };
65 
66     static constexpr const char *FUNCTION_CONSTRUCTOR_UDP_SOCKET_INSTANCE = "constructUDPSocketInstance";
67     static constexpr const char *FUNCTION_CONSTRUCTOR_TCP_SOCKET_INSTANCE = "constructTCPSocketInstance";
68     static constexpr const char *INTERFACE_UDP_SOCKET = "UDPSocket";
69     static constexpr const char *INTERFACE_TCP_SOCKET = "TCPSocket";
70 
71     static napi_value InitSocketModule(napi_env env, napi_value exports);
72 
73 private:
74     static napi_value ConstructUDPSocketInstance(napi_env env, napi_callback_info info);
75 
76     static napi_value ConstructTCPSocketInstance(napi_env env, napi_callback_info info);
77 
78     static void DefineUDPSocketClass(napi_env env, napi_value exports);
79 
80     static void DefineTCPSocketClass(napi_env env, napi_value exports);
81 
82     static void InitSocketProperties(napi_env env, napi_value exports);
83 };
84 } // namespace OHOS::NetStack
85 #endif // COMMUNICATIONNETSTACK_SOCKET_MODULE_H