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 int MakeLocalSocket(int socketType, bool needNonblock = true); 24 25 /* async work execute */ 26 bool ExecLocalSocketBind(LocalSocketBindContext *context); 27 28 bool ExecLocalSocketConnect(LocalSocketConnectContext *context); 29 30 bool ExecLocalSocketSend(LocalSocketSendContext *context); 31 32 bool ExecLocalSocketClose(LocalSocketCloseContext *context); 33 34 bool ExecLocalSocketGetState(LocalSocketGetStateContext *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 ExecLocalSocketServerGetState(LocalSocketServerGetStateContext *context); 45 46 bool ExecLocalSocketServerSetExtraOptions(LocalSocketServerSetExtraOptionsContext *context); 47 48 bool ExecLocalSocketServerGetExtraOptions(LocalSocketServerGetExtraOptionsContext *context); 49 50 bool ExecLocalSocketConnectionSend(LocalSocketServerSendContext *context); 51 52 bool ExecLocalSocketConnectionClose(LocalSocketServerCloseContext *context); 53 54 /* async work callback */ 55 napi_value LocalSocketBindCallback(LocalSocketBindContext *context); 56 57 napi_value LocalSocketConnectCallback(LocalSocketConnectContext *context); 58 59 napi_value LocalSocketSendCallback(LocalSocketSendContext *context); 60 61 napi_value LocalSocketCloseCallback(LocalSocketCloseContext *context); 62 63 napi_value LocalSocketGetStateCallback(LocalSocketGetStateContext *context); 64 65 napi_value LocalSocketGetSocketFdCallback(LocalSocketGetSocketFdContext *context); 66 67 napi_value LocalSocketSetExtraOptionsCallback(LocalSocketSetExtraOptionsContext *context); 68 69 napi_value LocalSocketGetExtraOptionsCallback(LocalSocketGetExtraOptionsContext *context); 70 71 napi_value LocalSocketServerListenCallback(LocalSocketServerListenContext *context); 72 73 napi_value LocalSocketServerGetStateCallback(LocalSocketServerGetStateContext *context); 74 75 napi_value LocalSocketServerSetExtraOptionsCallback(LocalSocketServerSetExtraOptionsContext *context); 76 77 napi_value LocalSocketServerGetExtraOptionsCallback(LocalSocketServerGetExtraOptionsContext *context); 78 79 napi_value LocalSocketConnectionSendCallback(LocalSocketServerSendContext *context); 80 81 napi_value LocalSocketConnectionCloseCallback(LocalSocketServerCloseContext *context); 82 83 struct LocalSocketConnectionData { LocalSocketConnectionDataLocalSocketConnectionData84 LocalSocketConnectionData(int32_t clientId, LocalSocketServerManager *serverManager) 85 : clientId_(clientId), serverManager_(serverManager) 86 { 87 } 88 ~LocalSocketConnectionData() = default; 89 int32_t clientId_ = 0; 90 LocalSocketServerManager *serverManager_ = nullptr; 91 } __attribute__((packed)); 92 } // namespace OHOS::NetStack::Socket::LocalSocketExec 93 #endif /* NETSTACK_LOCAL_SOCKET_EXEC_H */