| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //===-- TCPSocket.h ---------------------------------------------*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLDB_HOST_COMMON_TCPSOCKET_H
- #define LLDB_HOST_COMMON_TCPSOCKET_H
- #include "lldb/Host/Socket.h"
- #include "lldb/Host/SocketAddress.h"
- #include <map>
- namespace lldb_private {
- class TCPSocket : public Socket {
- public:
- TCPSocket(bool should_close, bool child_processes_inherit);
- TCPSocket(NativeSocket socket, bool should_close,
- bool child_processes_inherit);
- ~TCPSocket() override;
- // returns port number or 0 if error
- uint16_t GetLocalPortNumber() const;
- // returns ip address string or empty string if error
- std::string GetLocalIPAddress() const;
- // must be connected
- // returns port number or 0 if error
- uint16_t GetRemotePortNumber() const;
- // must be connected
- // returns ip address string or empty string if error
- std::string GetRemoteIPAddress() const;
- int SetOptionNoDelay();
- int SetOptionReuseAddress();
- Status Connect(llvm::StringRef name) override;
- Status Listen(llvm::StringRef name, int backlog) override;
- Status Accept(Socket *&conn_socket) override;
- Status CreateSocket(int domain);
- bool IsValid() const override;
- std::string GetRemoteConnectionURI() const override;
- private:
- TCPSocket(NativeSocket socket, const TCPSocket &listen_socket);
- void CloseListenSockets();
- std::map<int, SocketAddress> m_listen_sockets;
- };
- }
- #endif // LLDB_HOST_COMMON_TCPSOCKET_H
|