| // Copyright (C) 2014 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #ifndef EMUGL_COMMON_SOCKETS_H |
| #define EMUGL_COMMON_SOCKETS_H |
| |
| // A set of helper functions used to deal with sockets in a portable way. |
| |
| namespace emugl { |
| |
| // Disable Nagle's algorithm for socket descriptor |s|. This assumes |
| // that |s| is a TCP socket descriptor. |
| void socketTcpDisableNagle(int s); |
| |
| // Return the port associated with a given IP or IPv6 socket, |
| // or -errno code on failure. |
| int socketGetPort(int s); |
| |
| // Bind to a local/Unix path, and return its socket descriptor on success, |
| // or -errno code on failure. |
| int socketLocalServer(const char* path, int socketType); |
| |
| // Connect to a Unix local path, and return a new socket descriptor |
| // on success, or -errno code on failure. |
| int socketLocalClient(const char* path, int socketType); |
| |
| // Bind to a localhost TCP socket, and return its socket descriptor on |
| // success, or -errno code on failure. |
| int socketTcp4LoopbackServer(int port, int socketType); |
| |
| // Connect to a localhost TCP port, and return a new socket descriptor on |
| // success, or -errno code on failure. |
| int socketTcp4LoopbackClient(int port, int socketType); |
| |
| // Connect to a TCP host, and return a new socket descriptor on |
| // success, or -errno code on failure. |
| int socketTcpClient(const char* hostname, int port, int socketType); |
| |
| // Accept a new connection. |serverSocket| must be a bound server socket |
| // descriptor. Returns new socket descriptor on success, or -errno code |
| // on failure. |
| int socketAccept(int serverSocket); |
| |
| } // namespace emugl |
| |
| #endif // EMUGL_COMMON_SOCKETS_H |