1 /* 2 * Copyright (c) 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 NETSTACK_LOCAL_SOCKET_EXEC_H 17 #define NETSTACK_LOCAL_SOCKET_EXEC_H 18 19 #include "local_socket_context.h" 20 #include "local_socket_server_context.h" 21 22 namespace OHOS::NetStack::Socket::LocalSocketExec { 23 /* async work execute */ 24 bool ExecLocalSocketBind(LocalSocketBindContext *context); 25 26 bool ExecLocalSocketConnect(LocalSocketConnectContext *context); 27 28 bool ExecLocalSocketSend(LocalSocketSendContext *context); 29 30 bool ExecLocalSocketClose(LocalSocketCloseContext *context); 31 32 bool ExecLocalSocketGetState(LocalSocketGetStateContext *context); 33 34 bool ExecLocalSocketGetLocalAddress(LocalSocketGetLocalAddressContext *context); 35 36 bool ExecLocalSocketGetSocketFd(LocalSocketGetSocketFdContext *context); 37 38 bool ExecLocalSocketSetExtraOptions(LocalSocketSetExtraOptionsContext *context); 39 40 bool ExecLocalSocketGetExtraOptions(LocalSocketGetExtraOptionsContext *context); 41 42 bool ExecLocalSocketServerListen(LocalSocketServerListenContext *context); 43 44 bool ExecLocalSocketServerEnd(LocalSocketServerEndContext *context); 45 46 bool ExecLocalSocketServerGetState(LocalSocketServerGetStateContext *context); 47 48 bool ExecLocalSocketServerGetLocalAddress(LocalSocketServerGetLocalAddressContext *context); 49 50 bool ExecLocalSocketServerSetExtraOptions(LocalSocketServerSetExtraOptionsContext *context); 51 52 bool ExecLocalSocketServerGetExtraOptions(LocalSocketServerGetExtraOptionsContext *context); 53 54 bool ExecLocalSocketConnectionSend(LocalSocketServerSendContext *context); 55 56 bool ExecLocalSocketConnectionClose(LocalSocketServerCloseContext *context); 57 58 bool ExecLocalSocketConnectionGetLocalAddress(LocalSocketServerGetLocalAddressContext *context); 59 60 /* async work callback */ 61 napi_value LocalSocketBindCallback(LocalSocketBindContext *context); 62 63 napi_value LocalSocketConnectCallback(LocalSocketConnectContext *context); 64 65 napi_value LocalSocketSendCallback(LocalSocketSendContext *context); 66 67 napi_value LocalSocketCloseCallback(LocalSocketCloseContext *context); 68 69 napi_value LocalSocketGetStateCallback(LocalSocketGetStateContext *context); 70 71 napi_value LocalSocketGetLocalAddressCallback(LocalSocketGetLocalAddressContext *context); 72 73 napi_value LocalSocketGetSocketFdCallback(LocalSocketGetSocketFdContext *context); 74 75 napi_value LocalSocketSetExtraOptionsCallback(LocalSocketSetExtraOptionsContext *context); 76 77 napi_value LocalSocketGetExtraOptionsCallback(LocalSocketGetExtraOptionsContext *context); 78 79 napi_value LocalSocketServerListenCallback(LocalSocketServerListenContext *context); 80 81 napi_value LocalSocketServerEndCallback(LocalSocketServerEndContext *context); 82 83 napi_value LocalSocketServerGetStateCallback(LocalSocketServerGetStateContext *context); 84 85 napi_value LocalSocketServerGetLocalAddressCallback(LocalSocketServerGetLocalAddressContext *context); 86 87 napi_value LocalSocketServerSetExtraOptionsCallback(LocalSocketServerSetExtraOptionsContext *context); 88 89 napi_value LocalSocketServerGetExtraOptionsCallback(LocalSocketServerGetExtraOptionsContext *context); 90 91 napi_value LocalSocketConnectionSendCallback(LocalSocketServerSendContext *context); 92 93 napi_value LocalSocketConnectionCloseCallback(LocalSocketServerCloseContext *context); 94 95 napi_value LocalSocketConnectionGetLocalAddressCallback(LocalSocketServerGetLocalAddressContext *context); 96 97 struct LocalSocketConnectionData { LocalSocketConnectionDataLocalSocketConnectionData98 LocalSocketConnectionData(int32_t clientId, LocalSocketServerManager *serverManager) 99 : clientId_(clientId), serverManager_(serverManager) 100 { 101 } 102 ~LocalSocketConnectionData() = default; 103 int32_t clientId_ = 0; 104 LocalSocketServerManager *serverManager_ = nullptr; 105 } __attribute__((packed)); 106 } // namespace OHOS::NetStack::Socket::LocalSocketExec 107 #endif /* NETSTACK_LOCAL_SOCKET_EXEC_H */